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',
'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)