Source code for tests.test_dataimport
from magpie.data.testdata import brave_export_path, data_file_path, programming_links_orgmode
from magpie.datamodel import Twig, Url
from magpie.tools import dataimport, orgimport
from magpie.util import pprint
[docs]
def test_show_chrome_bookmarks():
"""Test importing Chrome bookmarks as a [`Folder`](#magpie.datamodel.Folder)
and print it."""
# FIXME We could check whether dumps from other browsers work as well
bookmarks = dataimport.process_bookmarks_file(data_file_path(brave_export_path),
origin='chrome',
root_path=['roots', 'bookmark_bar'])
pprint(bookmarks)
[docs]
def test_import_orgmode():
"""Import some bookmarks stored in an org-mode format and display them.
Also test various components of the org-mode parsing."""
u = orgimport.url.parse('https://justine.lol/cosmo3/')
assert isinstance(u, Url)
assert u.value == 'https://justine.lol/cosmo3/'
t = orgimport.orglink.parse('[[https://matklad.github.io/2024/03/22/basic-things.html][Basic Things]]')
assert isinstance(t, Twig)
assert t.title == 'Basic Things'
assert isinstance(t.url, Url)
assert t.url.value == 'https://matklad.github.io/2024/03/22/basic-things.html'
t = orgimport.orglink_with_related.parse(
'[[https://matklad.github.io//2021/02/06/ARCHITECTURE.md.html][Why you need ARCHITECTURE.md]] '
'[[[https://news.ycombinator.com/item?id=26048784][HN]],'
' [[https://www.reddit.com/r/programming/comments/le46br/why_you_need_architecturemd/][reddit]]]')
assert isinstance(t, Twig)
assert t.title == 'Why you need ARCHITECTURE.md'
assert t.url.value == 'https://matklad.github.io//2021/02/06/ARCHITECTURE.md.html'
assert len(t.related) == 2
assert t.related[0].value == 'https://news.ycombinator.com/item?id=26048784'
assert t.related[1].value == 'https://www.reddit.com/r/programming/comments/le46br/why_you_need_architecturemd/'
t = orgimport.embedded_org_link.parse('Use [[https://pre-commit.com/][pre-commit]] to run linters, etc.')
assert isinstance(t, Twig)
assert t.title == 'Use pre-commit to run linters, etc.'
assert t.url.value == 'https://pre-commit.com/'
t = orgimport.single_line_link.parse('StrictYAML: https://github.com/crdoconnor/strictyaml')
assert isinstance(t, Twig)
assert t.title == 'StrictYAML'
assert t.url.value == 'https://github.com/crdoconnor/strictyaml'
t = orgimport.single_line_link.parse('[[https://gameprogrammingpatterns.com/][Game programming patterns]] '
'(also more general than games)')
assert isinstance(t, Twig)
assert t.title == 'Game programming patterns'
assert t.notes == '(also more general than games)'
t = orgimport.parse_org_block([
'nicer tracebacks:',
'https://github.com/mbarkhau/pretty-traceback (contains list of alternatives in readme)',
'https://github.com/onelivesleft/PrettyErrors',
'https://github.com/andy-landy/traceback_with_variables',
'https://news.ycombinator.com/item?id=25227362',
])
assert isinstance(t, Twig)
assert t.title == 'nicer tracebacks'
assert t.url.value == 'https://github.com/mbarkhau/pretty-traceback'
assert t.notes == '(contains list of alternatives in readme)'
assert len(t.related) == 3
assert t.related[0].value == 'https://github.com/onelivesleft/PrettyErrors'
t = orgimport.single_line_link.parse(
'Best book after the official Rust book? [[[https://www.reddit.com/r/rust/comments/vptd32/best_book_after_the_official_rust_book/][reddit]]]'
)
assert isinstance(t, Twig)
assert t.title == 'Best book after the official Rust book?'
assert t.url.value == 'https://www.reddit.com/r/rust/comments/vptd32/best_book_after_the_official_rust_book/'
bookmarks = orgimport.parse_file(data_file_path(programming_links_orgmode))
pprint(bookmarks)
t = orgimport.single_line_link.parse('[[https://github.com/sarsko/CreuSAT][CreuSAT]]: a SAT solver in Rust '
'[[[https://news.ycombinator.com/item?id=31780128][HN]]]')
assert isinstance(t, Twig)
assert t.title == 'CreuSAT: a SAT solver in Rust'
assert t.url.value == 'https://github.com/sarsko/CreuSAT'
assert len(t.related) == 1
assert t.related[0].value == 'https://news.ycombinator.com/item?id=31780128'