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.
|
||||
"""
|
||||
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',
|
||||
'DefaultStyle']
|
||||
songs_reader = csv.DictReader(songs_file, field_names)
|
||||
@ -112,10 +113,10 @@ class ZionWorxImport(SongImport):
|
||||
if line and not line.isspace():
|
||||
verse += line + '\n'
|
||||
elif verse:
|
||||
self.add_verse(verse)
|
||||
self.add_verse(verse, 'v')
|
||||
verse = ''
|
||||
if verse:
|
||||
self.add_verse(verse)
|
||||
self.add_verse(verse, 'v')
|
||||
title = self.title
|
||||
if not self.finish():
|
||||
self.log_error(translate('SongsPlugin.ZionWorxImport', 'Record %d') % index +
|
||||
|
@ -22,14 +22,18 @@
|
||||
"""
|
||||
This module contains tests for the ZionWorx song importer.
|
||||
"""
|
||||
import os
|
||||
|
||||
from unittest import TestCase
|
||||
|
||||
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.songimport import SongImport
|
||||
from openlp.core.common import Registry
|
||||
|
||||
TEST_PATH = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'zionworxsongs'))
|
||||
|
||||
class TestZionWorxImport(TestCase):
|
||||
"""
|
||||
@ -54,3 +58,17 @@ class TestZionWorxImport(TestCase):
|
||||
|
||||
# THEN: The importer should be an instance of 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