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'