def export_subscriptions(path: str, database: Database) -> None: subscriptions = Subscriptions() feeds = database.feeds() subscriptions.generate(feeds) # Save may raise an error, but they are user-friendly enough that we don't # need to catch them here. It's also okay to crash at this point. subscriptions.save(path) print("Exported %d feeds" % len(feeds))
def test_subscriptions_save(): temp_fname = my_dir + "/subscriptions/saved_temp.xml" Feed.__init__ = mock.MagicMock(return_value=None) mysubscriptions1 = Subscriptions() mysubscriptions1.load(my_dir + "/subscriptions/valid_complete.xml") mysubscriptions1.save(temp_fname) mysubscriptions2 = Subscriptions() mysubscriptions2.load(my_dir + "/subscriptions/saved_temp.xml") os.remove(temp_fname) tree1 = ElementTree.tostring(mysubscriptions1._tree.getroot()) tree2 = ElementTree.tostring(mysubscriptions2._tree.getroot()) assert tree1 == tree2
def test_subscriptions_save_before_create(): mysubscriptions = Subscriptions() with pytest.raises(SubscriptionsError): mysubscriptions.save(my_dir + "/subscriptions/saved_bad_temp.xml")