forked from openlp/openlp
Fix bug #1589815 by first reducing the string to digits only and then checking if there's anything left.
This commit is contained in:
parent
d690366595
commit
0d2745a1d1
@ -156,8 +156,8 @@ class OpenSongImport(SongImport):
|
|||||||
ustring = str(root.__getattr__(attr))
|
ustring = str(root.__getattr__(attr))
|
||||||
if isinstance(fn_or_string, str):
|
if isinstance(fn_or_string, str):
|
||||||
if attr in ['ccli']:
|
if attr in ['ccli']:
|
||||||
|
ustring = ''.join(re.findall('\d+', ustring))
|
||||||
if ustring:
|
if ustring:
|
||||||
ustring = ''.join(re.findall('\d+', ustring))
|
|
||||||
setattr(self, fn_or_string, int(ustring))
|
setattr(self, fn_or_string, int(ustring))
|
||||||
else:
|
else:
|
||||||
setattr(self, fn_or_string, None)
|
setattr(self, fn_or_string, None)
|
||||||
|
@ -22,13 +22,13 @@
|
|||||||
"""
|
"""
|
||||||
This module contains tests for the OpenSong song importer.
|
This module contains tests for the OpenSong song importer.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
|
||||||
from tests.helpers.songfileimport import SongImportTestHelper
|
|
||||||
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
|
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
|
||||||
from openlp.core.common import Registry
|
from openlp.core.common import Registry
|
||||||
|
|
||||||
|
from tests.helpers.songfileimport import SongImportTestHelper
|
||||||
from tests.functional import patch, MagicMock
|
from tests.functional import patch, MagicMock
|
||||||
|
|
||||||
TEST_PATH = os.path.abspath(
|
TEST_PATH = os.path.abspath(
|
||||||
@ -54,6 +54,8 @@ class TestOpenSongFileImport(SongImportTestHelper):
|
|||||||
self.load_external_result_data(os.path.join(TEST_PATH, 'One, Two, Three, Four, Five.json')))
|
self.load_external_result_data(os.path.join(TEST_PATH, 'One, Two, Three, Four, Five.json')))
|
||||||
self.file_import([os.path.join(TEST_PATH, 'Amazing Grace2')],
|
self.file_import([os.path.join(TEST_PATH, 'Amazing Grace2')],
|
||||||
self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
|
self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace.json')))
|
||||||
|
self.file_import([os.path.join(TEST_PATH, 'Amazing Grace with bad CCLI')],
|
||||||
|
self.load_external_result_data(os.path.join(TEST_PATH, 'Amazing Grace without CCLI.json')))
|
||||||
|
|
||||||
|
|
||||||
class TestOpenSongImport(TestCase):
|
class TestOpenSongImport(TestCase):
|
||||||
|
@ -29,6 +29,7 @@ from unittest import TestCase
|
|||||||
|
|
||||||
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
|
from openlp.plugins.songs.lib.importers.opensong import OpenSongImport
|
||||||
from openlp.core.common import Registry
|
from openlp.core.common import Registry
|
||||||
|
|
||||||
from tests.functional import patch, MagicMock, call
|
from tests.functional import patch, MagicMock, call
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@ -36,7 +37,7 @@ log = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class SongImportTestHelper(TestCase):
|
class SongImportTestHelper(TestCase):
|
||||||
"""
|
"""
|
||||||
This class is designed to be a helper class to reduce repition when testing the import of song files.
|
This class is designed to be a helper class to reduce repetition when testing the import of song files.
|
||||||
"""
|
"""
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(SongImportTestHelper, self).__init__(*args, **kwargs)
|
super(SongImportTestHelper, self).__init__(*args, **kwargs)
|
||||||
|
56
tests/resources/opensongsongs/Amazing Grace with bad CCLI
Normal file
56
tests/resources/opensongsongs/Amazing Grace with bad CCLI
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<song>
|
||||||
|
<title>Amazing Grace (Demonstration)</title>
|
||||||
|
<author>John Newton, Edwin Excell & John P. Rees</author>
|
||||||
|
<copyright>Public Domain </copyright>
|
||||||
|
<presentation>V1 V2 V3 V4 V5</presentation>
|
||||||
|
<capo print="false"></capo>
|
||||||
|
<tempo></tempo>
|
||||||
|
<ccli>GE</ccli>
|
||||||
|
<theme>God: Assurance/Grace/Salvation</theme>
|
||||||
|
<alttheme>Worship: Praise</alttheme>
|
||||||
|
<user1> </user1>
|
||||||
|
<user2> </user2>
|
||||||
|
<user3> </user3>
|
||||||
|
<lyrics>[V]
|
||||||
|
;Test the chords format
|
||||||
|
;Chords beging with .
|
||||||
|
;Verses begin with their verse number
|
||||||
|
;Link words with _
|
||||||
|
;Comments begin with ;
|
||||||
|
. D D7 G D
|
||||||
|
1A______ma________zing grace! How sweet the sound!
|
||||||
|
2'Twas grace that taught my heart to fear,
|
||||||
|
3The Lord has pro____mised good to me,
|
||||||
|
4Thro' ma________ny dan____gers, toils and snares
|
||||||
|
5When we've been there ten thou__sand years,
|
||||||
|
|
||||||
|
. Bm E A A7
|
||||||
|
1That saved a wretch like me!
|
||||||
|
2And grace my fears re___lieved.
|
||||||
|
3His Word my hope se___cures.
|
||||||
|
4I have al___rea____dy come.
|
||||||
|
5Bright shi___ning as the sun,
|
||||||
|
|
||||||
|
. D D7 G D
|
||||||
|
1I once was lost, but now am found;
|
||||||
|
2How pre___cious did that grace ap____pear,
|
||||||
|
3He will my shield and por___tion be
|
||||||
|
4'Tis grace that brought me safe thus far,
|
||||||
|
5We've no less days to sing God's praise,
|
||||||
|
|
||||||
|
. Bm A G D
|
||||||
|
1Was blind, but now I see.
|
||||||
|
2The hour I first be_lieved.
|
||||||
|
3As long as life en_dures.
|
||||||
|
4And grace will lead me home.
|
||||||
|
5Than when we first be_gun.
|
||||||
|
|
||||||
|
</lyrics>
|
||||||
|
<hymn_number>Demonstration Songs 0</hymn_number>
|
||||||
|
<key></key>
|
||||||
|
<aka></aka>
|
||||||
|
<key_line></key_line>
|
||||||
|
<time_sig></time_sig>
|
||||||
|
<style index="default_style"></style>
|
||||||
|
</song>
|
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"authors": [
|
||||||
|
"John Newton",
|
||||||
|
"Edwin Excell",
|
||||||
|
"John P. Rees"
|
||||||
|
],
|
||||||
|
"ccli_number": null,
|
||||||
|
"comments": "\n\n\n",
|
||||||
|
"copyright": "Public Domain ",
|
||||||
|
"song_book_name": "Demonstration Songs",
|
||||||
|
"song_number": 0,
|
||||||
|
"title": "Amazing Grace (Demonstration)",
|
||||||
|
"topics": [
|
||||||
|
"Assurance",
|
||||||
|
"Grace",
|
||||||
|
"Praise",
|
||||||
|
"Salvation"
|
||||||
|
],
|
||||||
|
"verse_order_list": [],
|
||||||
|
"verses": [
|
||||||
|
[
|
||||||
|
"Amazing grace! How sweet the sound!\nThat saved a wretch like me!\nI once was lost, but now am found;\nWas blind, but now I see.",
|
||||||
|
"v1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'Twas grace that taught my heart to fear,\nAnd grace my fears relieved.\nHow precious did that grace appear,\nThe hour I first believed.",
|
||||||
|
"v2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"The Lord has promised good to me,\nHis Word my hope secures.\nHe will my shield and portion be\nAs long as life endures.",
|
||||||
|
"v3"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Thro' many dangers, toils and snares\nI have already come.\n'Tis grace that brought me safe thus far,\nAnd grace will lead me home.",
|
||||||
|
"v4"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"When we've been there ten thousand years,\nBright shining as the sun,\nWe've no less days to sing God's praise,\nThan when we first begun.",
|
||||||
|
"v5"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user