def test_no_anki_conn(self):
     if AnkiAppTest.is_open():
         AnkiAppTest.close()
     ankifier = RoamGraphAnkifier()
     with self.assertRaises(ValueError) as cm:
         ankifier.check_conn_and_params()
     self.assertEqual("Couldn't connect to Anki.", str(cm.exception))
 def test_ankify(self):
     pages = json.loads(ROAM_JSON)
     roam_graph = roam.RoamGraph(pages)
     ankifier = RoamGraphAnkifier(deck=self.deck)
     with self.assertLogs() as ctx:
         ankifier.ankify(roam_graph)
     self.assertFalse([r for r in ctx.records if r.levelno >= logging.WARNING])
 def test_bad_note_basic(self):
     if not AnkiAppTest.is_open():
         AnkiAppTest.open()
     ankifier = RoamGraphAnkifier(note_basic="not a model")
     with self.assertRaises(ValueError) as cm:
         ankifier.check_conn_and_params()
     self.assertEqual(
         f"Note type named '{ankifier.note_basic}' not in Anki.", 
         str(cm.exception))
 def test_bad_deck(self):
     if not AnkiAppTest.is_open():
         AnkiAppTest.open()
     ankifier = RoamGraphAnkifier(deck="not a deck")
     with self.assertRaises(ValueError) as cm:
         ankifier.check_conn_and_params()
     self.assertEqual(
         f"Deck named '{ankifier.deck}' not in Anki.", 
         str(cm.exception))
 def test_cloze_not_cloze(self):
     if not AnkiAppTest.is_open():
         AnkiAppTest.open()
     ankifier = RoamGraphAnkifier(note_cloze="Roam Basic")
     with self.assertRaises(ValueError) as cm:
         ankifier.check_conn_and_params()
     self.assertEqual(
         f"note_cloze must be a cloze note type and '{ankifier.note_cloze}' isn't.", 
         str(cm.exception))
 def test_missing_uid_field(self):
     if not AnkiAppTest.is_open():
         AnkiAppTest.open()
     ankifier = RoamGraphAnkifier(note_basic="Basic")
     with self.assertRaises(ValueError) as cm:
         ankifier.check_conn_and_params()
     self.assertEqual(
         f"'{ankifier.note_basic}' note type is missing a 'uid' field.", 
         str(cm.exception))
Esempio n. 7
0
def add(path, **kwargs):
    logger.info("Setting up Ankifier")
    ankifier = RoamGraphAnkifier(**kwargs)
    ankifier.check_conn_and_params()
    logger.info("Loading Roam Graph")
    roam_graph = RoamGraph.from_path(path)
    ankifier.ankify(roam_graph)