forked from openlp/openlp
Added test for zionworx file import.
This commit is contained in:
parent
85f034abdd
commit
d65fa351c3
@ -75,7 +75,8 @@ class ZionWorxImport(SongImport):
|
|||||||
"""
|
"""
|
||||||
Receive a CSV file (from a ZionWorx database dump) to import.
|
Receive a CSV file (from a ZionWorx database dump) to import.
|
||||||
"""
|
"""
|
||||||
with open(self.import_source, 'rt') as songs_file:
|
# Encoding should always be ISO-8859-1
|
||||||
|
with open(self.import_source, 'rt', encoding='ISO-8859-1') as songs_file:
|
||||||
field_names = ['SongNum', 'Title1', 'Title2', 'Lyrics', 'Writer', 'Copyright', 'Keywords',
|
field_names = ['SongNum', 'Title1', 'Title2', 'Lyrics', 'Writer', 'Copyright', 'Keywords',
|
||||||
'DefaultStyle']
|
'DefaultStyle']
|
||||||
songs_reader = csv.DictReader(songs_file, field_names)
|
songs_reader = csv.DictReader(songs_file, field_names)
|
||||||
@ -112,10 +113,10 @@ class ZionWorxImport(SongImport):
|
|||||||
if line and not line.isspace():
|
if line and not line.isspace():
|
||||||
verse += line + '\n'
|
verse += line + '\n'
|
||||||
elif verse:
|
elif verse:
|
||||||
self.add_verse(verse)
|
self.add_verse(verse, 'v')
|
||||||
verse = ''
|
verse = ''
|
||||||
if verse:
|
if verse:
|
||||||
self.add_verse(verse)
|
self.add_verse(verse, 'v')
|
||||||
title = self.title
|
title = self.title
|
||||||
if not self.finish():
|
if not self.finish():
|
||||||
self.log_error(translate('SongsPlugin.ZionWorxImport', 'Record %d') % index +
|
self.log_error(translate('SongsPlugin.ZionWorxImport', 'Record %d') % index +
|
||||||
|
@ -22,14 +22,18 @@
|
|||||||
"""
|
"""
|
||||||
This module contains tests for the ZionWorx song importer.
|
This module contains tests for the ZionWorx song importer.
|
||||||
"""
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
|
||||||
from tests.functional import MagicMock, patch
|
from tests.functional import MagicMock, patch
|
||||||
|
from tests.helpers.songfileimport import SongImportTestHelper
|
||||||
from openlp.plugins.songs.lib.importers.zionworx import ZionWorxImport
|
from openlp.plugins.songs.lib.importers.zionworx import ZionWorxImport
|
||||||
from openlp.plugins.songs.lib.importers.songimport import SongImport
|
from openlp.plugins.songs.lib.importers.songimport import SongImport
|
||||||
from openlp.core.common import Registry
|
from openlp.core.common import Registry
|
||||||
|
|
||||||
|
TEST_PATH = os.path.abspath(
|
||||||
|
os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'zionworxsongs'))
|
||||||
|
|
||||||
class TestZionWorxImport(TestCase):
|
class TestZionWorxImport(TestCase):
|
||||||
"""
|
"""
|
||||||
@ -54,3 +58,17 @@ class TestZionWorxImport(TestCase):
|
|||||||
|
|
||||||
# THEN: The importer should be an instance of SongImport
|
# THEN: The importer should be an instance of SongImport
|
||||||
self.assertIsInstance(importer, SongImport)
|
self.assertIsInstance(importer, SongImport)
|
||||||
|
|
||||||
|
class TestZionWorxFileImport(SongImportTestHelper):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self.importer_class_name = 'ZionWorxImport'
|
||||||
|
self.importer_module_name = 'zionworx'
|
||||||
|
super(TestZionWorxFileImport, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def test_song_import(self):
|
||||||
|
"""
|
||||||
|
Test that loading an ZionWorx file works correctly on various files
|
||||||
|
"""
|
||||||
|
self.file_import(os.path.join(TEST_PATH, 'zionworx.csv'),
|
||||||
|
self.load_external_result_data(os.path.join(TEST_PATH, 'zionworx.json')))
|
||||||
|
45
tests/resources/zionworxsongs/zionworx.csv
Normal file
45
tests/resources/zionworxsongs/zionworx.csv
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
"1","Crown Him With Many Crowns",,"Crown him with many crowns,
|
||||||
|
The Lamb upon His throne;
|
||||||
|
Hark, how the heavenly anthem drowns
|
||||||
|
All music but its own!
|
||||||
|
Awake, my soul, and sing
|
||||||
|
Of Him who died for thee,
|
||||||
|
And hail Him as thy matchless King
|
||||||
|
Through all eternity.
|
||||||
|
|
||||||
|
Crown Him the Lord of life,
|
||||||
|
Who triumphed o'er the grave
|
||||||
|
And rose victorious in the strife
|
||||||
|
For those He came to save:
|
||||||
|
His glories now we sing,
|
||||||
|
Who died and rose on high,
|
||||||
|
Who died eternal life to bring
|
||||||
|
And lives that death may die.
|
||||||
|
|
||||||
|
Crown Him the Lord of love;
|
||||||
|
Behold His hands and side,
|
||||||
|
Those wounds yet visible above
|
||||||
|
In beauty glorified:
|
||||||
|
No angel in the sky
|
||||||
|
Can fully bear that sight,
|
||||||
|
But downward bends His burning eye
|
||||||
|
At mysteries so bright.
|
||||||
|
|
||||||
|
Crown Him the Lord of peace,
|
||||||
|
Whose power a sceptre sways
|
||||||
|
From pole to pole, that wars may cease,
|
||||||
|
And all be prayer and praise:
|
||||||
|
His reign shall know no end,
|
||||||
|
And round His piercèd feet
|
||||||
|
Fair flowers of paradise extend
|
||||||
|
Their fragrance ever sweet.
|
||||||
|
|
||||||
|
Crown Him the Lord of years,
|
||||||
|
The Potentate of time,
|
||||||
|
Creator of the rolling spheres,
|
||||||
|
Ineffably sublime!
|
||||||
|
All hail, Redeemer, hail!
|
||||||
|
For Thou hast died for me;
|
||||||
|
Thy praise shall never, never fail
|
||||||
|
Throughout eternity.
|
||||||
|
","Matthew Bridges","Public Domain",,
|
|
30
tests/resources/zionworxsongs/zionworx.json
Normal file
30
tests/resources/zionworxsongs/zionworx.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"authors": [
|
||||||
|
"Matthew Bridges"
|
||||||
|
],
|
||||||
|
"copyright": "Public Domain",
|
||||||
|
"title": "Crown Him With Many Crowns",
|
||||||
|
"verse_order_list": [],
|
||||||
|
"verses": [
|
||||||
|
[
|
||||||
|
"Crown him with many crowns,\nThe Lamb upon His throne;\nHark, how the heavenly anthem drowns\nAll music but its own!\nAwake, my soul, and sing\nOf Him who died for thee,\nAnd hail Him as thy matchless King\nThrough all eternity.\n",
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Crown Him the Lord of life,\nWho triumphed o'er the grave\nAnd rose victorious in the strife\nFor those He came to save:\nHis glories now we sing,\nWho died and rose on high,\nWho died eternal life to bring\nAnd lives that death may die.\n",
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Crown Him the Lord of love;\nBehold His hands and side,\nThose wounds yet visible above\nIn beauty glorified:\nNo angel in the sky\nCan fully bear that sight,\nBut downward bends His burning eye\nAt mysteries so bright.\n",
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Crown Him the Lord of peace,\nWhose power a sceptre sways\nFrom pole to pole, that wars may cease,\nAnd all be prayer and praise:\nHis reign shall know no end,\nAnd round His piercèd feet\nFair flowers of paradise extend\nTheir fragrance ever sweet.\n",
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Crown Him the Lord of years,\nThe Potentate of time,\nCreator of the rolling spheres,\nIneffably sublime!\nAll hail, Redeemer, hail!\nFor Thou hast died for me;\nThy praise shall never, never fail\nThroughout eternity.\n",
|
||||||
|
"v"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user