def load_manager(filename=None): """Connects to the SQLite database with the given filename. If this is None, then it connects to an in-memory database (used for testing). """ from passage_list import PassageList, PassageListManager sqlite3.register_adapter(PassageList, lambda self: self.id) sqlite3.register_adapter(PassageListManager, lambda self: self.id) global connection, previous_filename if filename is None: filename = ":memory:" assert connection is None or previous_filename == filename previous_filename = filename manager = PassageListManager() try: if connection is None: connection = sqlite3.connect(filename) _maybe_setup_database(manager) _load_topic_children(manager) manager.parent = None except sqlite3.Error, e: import os manager.has_error_on_loading = True print "SQLITE loading error" import traceback traceback.print_exc()
class TestPassageListManagerListener(unittest.TestCase): def setUp(self): self._manager = PassageListManager() self._num_times_observer_called = 0 self._manager.add_subtopic_observers += self._passageListAppend def testAddSublistShouldCallObserver(self): self._manager.add_empty_subtopic("name") self._checkObserverHasBeenCalled() def _checkObserverHasBeenCalled(self): self.assertEqual(self._num_times_observer_called, 1) def _passageListAppend(self, passage_list): self._num_times_observer_called += 1
def _setupPassageLists(test): """Sets up the passage lists for the given test.""" test._verse_list1 = VerseList( [VK(("gen 2:3", "gen 2:5")), "gen 3:4", "gen 5:2"]) test._verse_list2 = VerseList( ["ex 2:2", "ex 3:5", VK(("ex 3:7", "ex 3:9"))]) test._verse_list3 = VerseList([VK(("lev 2:3", "lev 2:5")), "lev 2:7"]) test._verse_list4 = VerseList(["num 3:1", VK(("num 3:4", "num 3:5"))]) test._list = PassageList.create_from_verse_list("abc", test._verse_list1) test._list2 = PassageList.create_from_verse_list("def", test._verse_list2) test._list3 = PassageList.create_from_verse_list("ghi", test._verse_list3) test._list4 = PassageList.create_from_verse_list("jkl", test._verse_list4) test._list2.add_subtopic(test._list4) test._list.add_subtopic(test._list2) test._list.add_subtopic(test._list3) test._manager = PassageListManager() test._manager.add_subtopic(test._list)
def setUp(self): self._manager = PassageListManager() self._num_times_observer_called = 0 self._manager.add_subtopic_observers += self._passageListAppend