forked from openlp/openlp
Merge branch 'test-improvements-bible_ref_parsing' into 'master'
Test improvements for bible ref parsing See merge request openlp/openlp!92
This commit is contained in:
commit
3b3f92d8b1
@ -70,58 +70,58 @@ class TestBibleManager(TestCase, TestMixin):
|
|||||||
del self.manager
|
del self.manager
|
||||||
self.destroy_settings()
|
self.destroy_settings()
|
||||||
|
|
||||||
def test_parse_reference_one(self):
|
def test_parse_reference_numbered_book_single_chapter_no_verse_reference(self):
|
||||||
"""
|
"""
|
||||||
Test the parse_reference method with 1 Timothy 1
|
Test the parse_reference method with 1 Timothy 1
|
||||||
"""
|
"""
|
||||||
# GIVEN given a bible in the bible manager
|
# GIVEN given a bible in the bible manager
|
||||||
# WHEN asking to parse the bible reference
|
# WHEN asking to parse the bible reference
|
||||||
results = parse_reference('1 Timothy 1', self.manager.db_cache['tests'], MagicMock(), 54)
|
results = parse_reference('1 Timothy 1', self.manager.db_cache['tests'], MagicMock(), 54)
|
||||||
# THEN a verse array should be returned
|
# THEN a one tuple verse array should be returned
|
||||||
assert [(54, 1, 1, -1)] == results, "The bible verses should matches the expected results"
|
assert [(54, 1, 1, -1)] == results, "The bible verses should match the expected results"
|
||||||
|
|
||||||
def test_parse_reference_two(self):
|
def test_parse_reference_numbered_book_single_range_single_chapter_multiple_verses(self):
|
||||||
"""
|
"""
|
||||||
Test the parse_reference method with 1 Timothy 1:1-2
|
Test the parse_reference method with 1 Timothy 1:1-2
|
||||||
"""
|
"""
|
||||||
# GIVEN given a bible in the bible manager
|
# GIVEN given a bible in the bible manager
|
||||||
# WHEN asking to parse the bible reference
|
# WHEN asking to parse the bible reference
|
||||||
results = parse_reference('1 Timothy 1:1-2', self.manager.db_cache['tests'], MagicMock(), 54)
|
results = parse_reference('1 Timothy 1:1-2', self.manager.db_cache['tests'], MagicMock(), 54)
|
||||||
# THEN a verse array should be returned
|
# THEN a one tuple verse array should be returned
|
||||||
assert [(54, 1, 1, 2)] == results, "The bible verses should matches the expected results"
|
assert [(54, 1, 1, 2)] == results, "The bible verses should match the expected results"
|
||||||
|
|
||||||
def test_parse_reference_three(self):
|
def test_parse_reference_numbered_book_single_range_multiple_chapters_specific_verses(self):
|
||||||
"""
|
"""
|
||||||
Test the parse_reference method with 1 Timothy 1:1-2
|
Test the parse_reference method with 1 Timothy 1:1-2
|
||||||
"""
|
"""
|
||||||
# GIVEN given a bible in the bible manager
|
# GIVEN given a bible in the bible manager
|
||||||
# WHEN asking to parse the bible reference
|
# WHEN asking to parse the bible reference
|
||||||
results = parse_reference('1 Timothy 1:1-2:1', self.manager.db_cache['tests'], MagicMock(), 54)
|
results = parse_reference('1 Timothy 1:1-2:1', self.manager.db_cache['tests'], MagicMock(), 54)
|
||||||
# THEN a verse array should be returned
|
# THEN a two tuple verse array should be returned
|
||||||
assert [(54, 1, 1, -1), (54, 2, 1, 1)] == results, \
|
assert [(54, 1, 1, -1), (54, 2, 1, 1)] == results, \
|
||||||
"The bible verses should match the expected results"
|
"The bible verses should match the expected results"
|
||||||
|
|
||||||
def test_parse_reference_four(self):
|
def test_parse_reference_invalid_book(self):
|
||||||
"""
|
"""
|
||||||
Test the parse_reference method with non existence book
|
Test the parse_reference method with non existent book
|
||||||
"""
|
"""
|
||||||
# GIVEN given a bible in the bible manager
|
# GIVEN given a bible in the bible manager
|
||||||
# WHEN asking to parse the bible reference
|
# WHEN asking to parse the bible reference
|
||||||
results = parse_reference('Raoul 1', self.manager.db_cache['tests'], MagicMock())
|
results = parse_reference('Raoul 1', self.manager.db_cache['tests'], MagicMock())
|
||||||
# THEN a verse array should be returned
|
# THEN an empty verse array should be returned
|
||||||
assert [] == results, "The bible Search should return an empty list"
|
assert [] == results, "The bible search should return an empty list"
|
||||||
|
|
||||||
def test_parse_reference_five(self):
|
def test_parse_reference_numbered_book_single_range_single_chapter_with_end_reference(self):
|
||||||
"""
|
"""
|
||||||
Test the parse_reference method with 1 Timothy 1:3-end
|
Test the parse_reference method with 1 Timothy 1:3-end
|
||||||
"""
|
"""
|
||||||
# GIVEN given a bible in the bible manager
|
# GIVEN given a bible in the bible manager
|
||||||
# WHEN asking to parse the bible reference
|
# WHEN asking to parse the bible reference
|
||||||
results = parse_reference('1 Timothy 1:3-end', self.manager.db_cache['tests'], MagicMock(), 54)
|
results = parse_reference('1 Timothy 1:3-end', self.manager.db_cache['tests'], MagicMock(), 54)
|
||||||
# THEN a verse array should be returned
|
# THEN a one tuple verse array should be returned
|
||||||
assert [(54, 1, 3, -1)] == results, "The bible verses should matches the expected results"
|
assert [(54, 1, 3, -1)] == results, "The bible verses should match the expected results"
|
||||||
|
|
||||||
def test_parse_reference_six(self):
|
def test_parse_reference_numbered_book_single_range_single_chapter_with_end_reference_no_bible_ref_id(self):
|
||||||
"""
|
"""
|
||||||
Test the parse_reference method with 1 Timothy 1:3-end without a bible ref id to match
|
Test the parse_reference method with 1 Timothy 1:3-end without a bible ref id to match
|
||||||
how the GUI does the search. This is logged in issue #282
|
how the GUI does the search. This is logged in issue #282
|
||||||
@ -129,5 +129,66 @@ class TestBibleManager(TestCase, TestMixin):
|
|||||||
# GIVEN given a bible in the bible manager
|
# GIVEN given a bible in the bible manager
|
||||||
# WHEN asking to parse the bible reference in Language 0 (english)
|
# WHEN asking to parse the bible reference in Language 0 (english)
|
||||||
results = parse_reference('1 Timothy 1:3-end', self.manager.db_cache['tests'], 0)
|
results = parse_reference('1 Timothy 1:3-end', self.manager.db_cache['tests'], 0)
|
||||||
# THEN a verse array should be returned
|
# THEN a one tuple verse array should be returned
|
||||||
assert [(54, 1, 3, -1)] == results, "The bible verses should matches the expected results"
|
assert [(54, 1, 3, -1)] == results, "The bible verses should match the expected results"
|
||||||
|
|
||||||
|
def test_parse_reference_book_ref_id_invalid(self):
|
||||||
|
"""
|
||||||
|
Test the parse_reference method with 1 Timothy 1:1 with an invalid bible ref id
|
||||||
|
"""
|
||||||
|
# GIVEN given a bible in the bible manager
|
||||||
|
# WHEN asking to parse the bible reference with an invalid bible reference id
|
||||||
|
results = parse_reference('1 Timothy 1:1', self.manager.db_cache['tests'], MagicMock(), -666)
|
||||||
|
# THEN an empty verse array should be returned
|
||||||
|
assert [] == results, "The bible verse list should be empty"
|
||||||
|
|
||||||
|
def test_parse_reference_no_from_chapter_in_second_range(self):
|
||||||
|
"""
|
||||||
|
Test the parse_reference method with 1 Timothy 1:1,3
|
||||||
|
"""
|
||||||
|
# GIVEN given a bible in the bible manager
|
||||||
|
# WHEN asking to parse the bible reference that has no from_chapter in the second range
|
||||||
|
results = parse_reference('1 Timothy 1:1,3', self.manager.db_cache['tests'], MagicMock(), 54)
|
||||||
|
# THEN a two tuple verse array should be returned
|
||||||
|
assert [(54, 1, 1, 1), (54, 1, 3, 3)] == results, "The bible verses should match the expected results"
|
||||||
|
|
||||||
|
def test_parse_reference_to_chapter_less_than_from_chapter(self):
|
||||||
|
"""
|
||||||
|
Test the parse_reference method with 1 Timothy 2:1-1:1
|
||||||
|
"""
|
||||||
|
# GIVEN given a bible in the bible manager
|
||||||
|
# WHEN asking to parse the bible reference with a to_chapter less than the from_chapter
|
||||||
|
results = parse_reference('1 Timothy 2:1-1:1', self.manager.db_cache['tests'], MagicMock(), 54)
|
||||||
|
# THEN an empty verse array should be returned
|
||||||
|
assert [] == results, "The bible verse list should be empty"
|
||||||
|
|
||||||
|
def test_parse_reference_no_from_chapter_specified(self):
|
||||||
|
"""
|
||||||
|
Test the parse_reference method with 1 Timothy :1-2
|
||||||
|
"""
|
||||||
|
# GIVEN given a bible in the bible manager
|
||||||
|
# WHEN asking to parse the bible reference with no from_chapter specified
|
||||||
|
results = parse_reference('1 Timothy :1-2', self.manager.db_cache['tests'], MagicMock(), 54)
|
||||||
|
# THEN a two tuple verse array should be returned with the bible verse references treated as chapter references
|
||||||
|
assert [(54, 1, 1, -1), (54, 2, 1, -1)] == results, "The bible verses should match the expected results"
|
||||||
|
|
||||||
|
def test_parse_reference_three_chapters(self):
|
||||||
|
"""
|
||||||
|
Test the parse_reference method with 1 Timothy 1-3
|
||||||
|
"""
|
||||||
|
# GIVEN given a bible in the bible manager
|
||||||
|
# WHEN asking to parse the bible reference with three chapters
|
||||||
|
results = parse_reference('1 Timothy 1-3', self.manager.db_cache['tests'], MagicMock(), 54)
|
||||||
|
# THEN a three tuple verse array should be returned
|
||||||
|
assert [(54, 1, 1, -1), (54, 2, 1, -1), (54, 3, 1, -1)] == results, \
|
||||||
|
"The bible verses should match the expected results"
|
||||||
|
|
||||||
|
def test_parse_reference_non_regexp_matching_reference(self):
|
||||||
|
"""
|
||||||
|
Test the parse_reference method with 1 Timothy
|
||||||
|
"""
|
||||||
|
# GIVEN given a bible in the bible manager
|
||||||
|
# WHEN asking to parse the bible reference that fails the regexp matching
|
||||||
|
results = parse_reference('1 Timothy', self.manager.db_cache['tests'], MagicMock(), 54)
|
||||||
|
# THEN an empty verse array should be returned
|
||||||
|
assert [] == results, "The bible verse list should be empty"
|
||||||
|
Loading…
Reference in New Issue
Block a user