From 4039cf1103230fec05d8035153f6f2fbbccefb32 Mon Sep 17 00:00:00 2001 From: Tomas Groth Date: Tue, 20 May 2014 23:54:18 +0200 Subject: [PATCH] More tests --- .../bibles/test_zefaniaimport.py | 64 ++++++++----------- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/tests/functional/openlp_plugins/bibles/test_zefaniaimport.py b/tests/functional/openlp_plugins/bibles/test_zefaniaimport.py index 942834d7a..63e6ae40d 100644 --- a/tests/functional/openlp_plugins/bibles/test_zefaniaimport.py +++ b/tests/functional/openlp_plugins/bibles/test_zefaniaimport.py @@ -44,20 +44,20 @@ ZEFANIA_TEST_DATA = { 'book': 'Genesis', 'chapter' : 1, 'verses': [ - (1, 'I Begyndelsen skabte Gud Himmelen og Jorden.\n'), - (2, 'Og Jorden var øde og tom, og der var Mørke over Verdensdybet. ' + ('1', 'I Begyndelsen skabte Gud Himmelen og Jorden.'), + ('2', 'Og Jorden var øde og tom, og der var Mørke over Verdensdybet. ' 'Men Guds Ånd svævede over Vandene.'), - (3, 'Og Gud sagde: "Der blive Lys!" Og der blev Lys.'), - (4, 'Og Gud så, at Lyset var godt, og Gud satte Skel mellem Lyset og Mørket,'), - (5, 'og Gud kaldte Lyset Dag, og Mørket kaldte han Nat. Og det blev Aften, ' + ('3', 'Og Gud sagde: "Der blive Lys!" Og der blev Lys.'), + ('4', 'Og Gud så, at Lyset var godt, og Gud satte Skel mellem Lyset og Mørket,'), + ('5', 'og Gud kaldte Lyset Dag, og Mørket kaldte han Nat. Og det blev Aften, ' 'og det blev Morgen, første Dag.'), - (6, 'Derpå sagde Gud: "Der blive en Hvælving midt i Vandene til at skille Vandene ad!"'), - (7, 'Og således skete det: Gud gjorde Hvælvingen og skilte Vandet under Hvælvingen ' + ('6', 'Derpå sagde Gud: "Der blive en Hvælving midt i Vandene til at skille Vandene ad!"'), + ('7', 'Og således skete det: Gud gjorde Hvælvingen og skilte Vandet under Hvælvingen ' 'fra Vandet over Hvælvingen;'), - (8, 'og Gud kaldte Hvælvingen Himmel. Og det blev Aften, og det blev Morgen, anden Dag.'), - (9, 'Derpå sagde Gud: "Vandet under Himmelen samle sig på eet Sted, så det faste Land kommer til Syne!" ' + ('8', 'og Gud kaldte Hvælvingen Himmel. Og det blev Aften, og det blev Morgen, anden Dag.'), + ('9', 'Derpå sagde Gud: "Vandet under Himmelen samle sig på eet Sted, så det faste Land kommer til Syne!" ' 'Og således skete det;'), - (10, 'og Gud kaldte det faste Land Jord, og Stedet, hvor Vandet samlede sig, kaldte han Hav. Og Gud så, ' + ('10', 'og Gud kaldte det faste Land Jord, og Stedet, hvor Vandet samlede sig, kaldte han Hav. Og Gud så, ' 'at det var godt.') ] } @@ -70,62 +70,52 @@ class TestZefaniaImport(TestCase): """ def setUp(self): - self.construtor_patcher = patch('openlp.plugins.bibles.lib.db.Registry') - self.construtor_patcher.start() - self.get_lang_patcher = patch('openlp.plugins.bibles.lib.db.Manager') - self.get_lang_patcher.start() - self.brdb = patch('openlp.plugins.bibles.lib.zefania.BiblesResourcesDB') - self.brdb.start() - self.qt_core = patch('openlp.plugins.bibles.lib.db.QtCore') - self.qt_core.start() + self.registry_patcher = patch('openlp.plugins.bibles.lib.db.Registry') + self.registry_patcher.start() + self.manager_patcher = patch('openlp.plugins.bibles.lib.db.Manager') + self.manager_patcher.start() def tearDown(self): - self.construtor_patcher.stop() - self.get_lang_patcher.stop() - self.brdb.stop() - self.qt_core.stop() + self.registry_patcher.stop() + self.manager_patcher.stop() def create_importer_test(self): """ Test creating an instance of the Zefania file importer """ # GIVEN: A mocked out BibleDB class, and a mocked out "manager" - #with patch('openlp.plugins.bibles.lib.zefania.BibleDB'): - if True: - mocked_manager = MagicMock() + mocked_manager = MagicMock() - # WHEN: An importer object is created - importer = ZefaniaBible(mocked_manager, path='.', name='.', filename='') + # WHEN: An importer object is created + importer = ZefaniaBible(mocked_manager, path='.', name='.', filename='') - # THEN: The importer should be an instance of SongImport - self.assertIsInstance(importer, BibleDB) + # THEN: The importer should be an instance of SongImport + self.assertIsInstance(importer, BibleDB) def file_import_test(self): """ Test the actual import of real song files """ # GIVEN: Test files with a mocked out "manager" and a mocked out "import_wizard" - #with patch('openlp.plugins.bibles.lib.zefania.BiblesResourcesDB') as brdb: - if True: + with patch('openlp.plugins.bibles.lib.zefania.ZefaniaBible.application') as brdb: for bible_file in ZEFANIA_TEST_DATA: mocked_manager = MagicMock() mocked_import_wizard = MagicMock() importer = ZefaniaBible(mocked_manager, path='.', name='.', filename='') importer.wizard = mocked_import_wizard - #importer.wizard.increment_progress_bar = MagicMock() importer.get_book_ref_id_by_name = MagicMock() - importer.get_book_ref_id_by_name.return_value = { 'id': 1, 'testament_id': 1, 'name': 'Genesis', - 'abbreviation': 'Gen', 'chapters': 1 } importer.create_verse = MagicMock() importer.create_book = MagicMock() importer.session = MagicMock() importer.get_language = MagicMock() importer.get_language.return_value = 'Danish' - importer.application.process_events = MagicMock() - # WHEN: Importing each file + # WHEN: Importing bible file importer.filename = os.path.join(TEST_PATH, bible_file) importer.do_import('Dansk Version') - # THEN: The create_verse() method should have been called + # THEN: The create_verse() method should have been called with each verse in the file. self.assertTrue(importer.create_verse.called) + for verse_tag, verse_text in ZEFANIA_TEST_DATA['zefania-dk1933.xml']['verses']: + importer.create_verse.assert_any_call(importer.create_book().id, '1', verse_tag, verse_text) +