forked from openlp/openlp
Fix the author_type import properly
This commit is contained in:
parent
419b3e46d8
commit
ddd9d4d865
@ -909,7 +909,9 @@ class SlideController(DisplayController, RegistryProperties):
|
|||||||
Registry().execute('%s_stop' % old_item.name.lower(), [old_item, self.is_live])
|
Registry().execute('%s_stop' % old_item.name.lower(), [old_item, self.is_live])
|
||||||
if old_item.is_media() and not self.service_item.is_media():
|
if old_item.is_media() and not self.service_item.is_media():
|
||||||
self.on_media_close()
|
self.on_media_close()
|
||||||
Registry().execute('slidecontroller_%s_started' % self.type_prefix, [self.service_item])
|
if self.is_live:
|
||||||
|
# This even is only registered for live
|
||||||
|
Registry().execute('slidecontroller_%s_started' % self.type_prefix, [self.service_item])
|
||||||
|
|
||||||
def on_slide_selected_index(self, message):
|
def on_slide_selected_index(self, message):
|
||||||
"""
|
"""
|
||||||
|
@ -149,7 +149,12 @@ class OpenLPSongImport(SongImport):
|
|||||||
class_mapper(OldSongBookEntry)
|
class_mapper(OldSongBookEntry)
|
||||||
except UnmappedClassError:
|
except UnmappedClassError:
|
||||||
mapper(OldSongBookEntry, source_songs_songbooks_table, properties={'songbook': relation(OldBook)})
|
mapper(OldSongBookEntry, source_songs_songbooks_table, properties={'songbook': relation(OldBook)})
|
||||||
if has_authors_songs and 'author_type' in source_authors_songs_table.c.values():
|
if has_authors_songs:
|
||||||
|
try:
|
||||||
|
class_mapper(OldAuthorSong)
|
||||||
|
except UnmappedClassError:
|
||||||
|
mapper(OldAuthorSong, source_authors_songs_table)
|
||||||
|
if has_authors_songs and 'author_type' in source_authors_songs_table.c.keys():
|
||||||
has_author_type = True
|
has_author_type = True
|
||||||
else:
|
else:
|
||||||
has_author_type = False
|
has_author_type = False
|
||||||
@ -190,11 +195,6 @@ class OpenLPSongImport(SongImport):
|
|||||||
class_mapper(OldTopic)
|
class_mapper(OldTopic)
|
||||||
except UnmappedClassError:
|
except UnmappedClassError:
|
||||||
mapper(OldTopic, source_topics_table)
|
mapper(OldTopic, source_topics_table)
|
||||||
if has_authors_songs:
|
|
||||||
try:
|
|
||||||
class_mapper(OldAuthorSong)
|
|
||||||
except UnmappedClassError:
|
|
||||||
mapper(OldAuthorSong, source_authors_songs_table)
|
|
||||||
|
|
||||||
source_songs = self.source_session.query(OldSong).all()
|
source_songs = self.source_session.query(OldSong).all()
|
||||||
if self.import_wizard:
|
if self.import_wizard:
|
||||||
|
@ -22,11 +22,32 @@
|
|||||||
"""
|
"""
|
||||||
This module contains tests for the OpenLP song importer.
|
This module contains tests for the OpenLP song importer.
|
||||||
"""
|
"""
|
||||||
|
import os
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
from unittest.mock import patch, MagicMock
|
||||||
|
|
||||||
from openlp.plugins.songs.lib.importers.openlp import OpenLPSongImport
|
|
||||||
from openlp.core.common import Registry
|
from openlp.core.common import Registry
|
||||||
from tests.functional import patch, MagicMock
|
from openlp.plugins.songs.lib.importers.openlp import OpenLPSongImport
|
||||||
|
|
||||||
|
from tests.helpers.songfileimport import SongImportTestHelper
|
||||||
|
|
||||||
|
TEST_PATH = os.path.abspath(
|
||||||
|
os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources', 'openlpsongs'))
|
||||||
|
|
||||||
|
|
||||||
|
class TestOpenLPFileImport(SongImportTestHelper):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self.importer_class_name = 'OpenLPSongImport'
|
||||||
|
self.importer_module_name = 'openlp'
|
||||||
|
super(TestOpenLPFileImport, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def test_song_import(self):
|
||||||
|
"""
|
||||||
|
Test that loading an OpenSong file works correctly on various files
|
||||||
|
"""
|
||||||
|
self.file_import([os.path.join(TEST_PATH, 'songs.sqlite')],
|
||||||
|
self.load_external_result_data(os.path.join(TEST_PATH, 'AmazingGrace.json')))
|
||||||
|
|
||||||
|
|
||||||
class TestOpenLPImport(TestCase):
|
class TestOpenLPImport(TestCase):
|
||||||
|
43
tests/resources/openlpsongs/AmazingGrace.json
Normal file
43
tests/resources/openlpsongs/AmazingGrace.json
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"authors": [
|
||||||
|
"John Newton"
|
||||||
|
],
|
||||||
|
"ccli_number": 22025,
|
||||||
|
"comments": "",
|
||||||
|
"copyright": "Public Domain ",
|
||||||
|
"song_book_name": "",
|
||||||
|
"song_number": 0,
|
||||||
|
"title": "Amazing Grace",
|
||||||
|
"topics": [
|
||||||
|
"Grace"
|
||||||
|
],
|
||||||
|
"verse_order_list": [
|
||||||
|
"V1",
|
||||||
|
"V2",
|
||||||
|
"V3",
|
||||||
|
"V4",
|
||||||
|
"V5"
|
||||||
|
],
|
||||||
|
"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"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
BIN
tests/resources/openlpsongs/songs.sqlite
Normal file
BIN
tests/resources/openlpsongs/songs.sqlite
Normal file
Binary file not shown.
@ -39,4 +39,4 @@
|
|||||||
"v5"
|
"v5"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user