More tests

This commit is contained in:
Tomas Groth 2014-05-20 23:54:18 +02:00
parent 58179f8d83
commit 4039cf1103

View File

@ -44,20 +44,20 @@ ZEFANIA_TEST_DATA = {
'book': 'Genesis', 'book': 'Genesis',
'chapter' : 1, 'chapter' : 1,
'verses': [ 'verses': [
(1, 'I Begyndelsen skabte Gud Himmelen og Jorden.\n'), ('1', 'I Begyndelsen skabte Gud Himmelen og Jorden.'),
(2, 'Og Jorden var øde og tom, og der var Mørke over Verdensdybet. ' ('2', 'Og Jorden var øde og tom, og der var Mørke over Verdensdybet. '
'Men Guds Ånd svævede over Vandene.'), 'Men Guds Ånd svævede over Vandene.'),
(3, 'Og Gud sagde: "Der blive Lys!" Og der blev Lys.'), ('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,'), ('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, ' ('5', 'og Gud kaldte Lyset Dag, og Mørket kaldte han Nat. Og det blev Aften, '
'og det blev Morgen, første Dag.'), 'og det blev Morgen, første Dag.'),
(6, 'Derpå sagde Gud: "Der blive en Hvælving midt i Vandene til at skille Vandene ad!"'), ('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 ' ('7', 'Og således skete det: Gud gjorde Hvælvingen og skilte Vandet under Hvælvingen '
'fra Vandet over Hvælvingen;'), 'fra Vandet over Hvælvingen;'),
(8, 'og Gud kaldte Hvælvingen Himmel. Og det blev Aften, og det blev Morgen, anden Dag.'), ('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!" ' ('9', 'Derpå sagde Gud: "Vandet under Himmelen samle sig på eet Sted, så det faste Land kommer til Syne!" '
'Og således skete det;'), '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.') 'at det var godt.')
] ]
} }
@ -70,62 +70,52 @@ class TestZefaniaImport(TestCase):
""" """
def setUp(self): def setUp(self):
self.construtor_patcher = patch('openlp.plugins.bibles.lib.db.Registry') self.registry_patcher = patch('openlp.plugins.bibles.lib.db.Registry')
self.construtor_patcher.start() self.registry_patcher.start()
self.get_lang_patcher = patch('openlp.plugins.bibles.lib.db.Manager') self.manager_patcher = patch('openlp.plugins.bibles.lib.db.Manager')
self.get_lang_patcher.start() self.manager_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()
def tearDown(self): def tearDown(self):
self.construtor_patcher.stop() self.registry_patcher.stop()
self.get_lang_patcher.stop() self.manager_patcher.stop()
self.brdb.stop()
self.qt_core.stop()
def create_importer_test(self): def create_importer_test(self):
""" """
Test creating an instance of the Zefania file importer Test creating an instance of the Zefania file importer
""" """
# GIVEN: A mocked out BibleDB class, and a mocked out "manager" # GIVEN: A mocked out BibleDB class, and a mocked out "manager"
#with patch('openlp.plugins.bibles.lib.zefania.BibleDB'): mocked_manager = MagicMock()
if True:
mocked_manager = MagicMock()
# WHEN: An importer object is created # WHEN: An importer object is created
importer = ZefaniaBible(mocked_manager, path='.', name='.', filename='') importer = ZefaniaBible(mocked_manager, path='.', name='.', filename='')
# THEN: The importer should be an instance of SongImport # THEN: The importer should be an instance of SongImport
self.assertIsInstance(importer, BibleDB) self.assertIsInstance(importer, BibleDB)
def file_import_test(self): def file_import_test(self):
""" """
Test the actual import of real song files Test the actual import of real song files
""" """
# GIVEN: Test files with a mocked out "manager" and a mocked out "import_wizard" # GIVEN: Test files with a mocked out "manager" and a mocked out "import_wizard"
#with patch('openlp.plugins.bibles.lib.zefania.BiblesResourcesDB') as brdb: with patch('openlp.plugins.bibles.lib.zefania.ZefaniaBible.application') as brdb:
if True:
for bible_file in ZEFANIA_TEST_DATA: for bible_file in ZEFANIA_TEST_DATA:
mocked_manager = MagicMock() mocked_manager = MagicMock()
mocked_import_wizard = MagicMock() mocked_import_wizard = MagicMock()
importer = ZefaniaBible(mocked_manager, path='.', name='.', filename='') importer = ZefaniaBible(mocked_manager, path='.', name='.', filename='')
importer.wizard = mocked_import_wizard 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 = 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_verse = MagicMock()
importer.create_book = MagicMock() importer.create_book = MagicMock()
importer.session = MagicMock() importer.session = MagicMock()
importer.get_language = MagicMock() importer.get_language = MagicMock()
importer.get_language.return_value = 'Danish' 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.filename = os.path.join(TEST_PATH, bible_file)
importer.do_import('Dansk Version') 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) 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)