def parse_verse_number_empty_attribute_test(self): """ Test parse_verse_number when the verse number is an empty string. (Bug #1074727) """ # GIVEN: An instance of OpenSongBible, an empty string, and the previous verse number set as 14 importer = OpenSongBible(MagicMock(), path='.', name='.', filename='') # WHEN: Calling parse_verse_number result = importer.parse_verse_number('', 14) # THEN: parse_verse_number should increment the previous verse number self.assertEqual(result, 15)
def parse_verse_number_invalid_verse_no_test(self): """ Test parse_verse_number when supplied with a invalid verse number """ # GIVEN: An instance of OpenSongBible, a non numeric string represented as a string importer = OpenSongBible(MagicMock(), path='.', name='.', filename='') # WHEN: Calling parse_verse_number result = importer.parse_verse_number('invalid', 41) # THEN: parse_verse_number should increment the previous verse number self.assertEqual(result, 42)
def parse_verse_number_verse_range_test(self): """ Test parse_verse_number when supplied with a verse range """ # GIVEN: An instance of OpenSongBible, and the range 24-26 represented as a string importer = OpenSongBible(MagicMock(), path='.', name='.', filename='') # WHEN: Calling parse_verse_number result = importer.parse_verse_number('24-26', 0) # THEN: parse_verse_number should return the first verse number in the range self.assertEqual(result, 24)
def parse_verse_number_valid_verse_no_test(self): """ Test parse_verse_number when supplied with a valid verse number """ # GIVEN: An instance of OpenSongBible, the number 15 represented as a string and an instance of OpenSongBible importer = OpenSongBible(MagicMock(), path='.', name='.', filename='') # WHEN: Calling parse_verse_number result = importer.parse_verse_number('15', 0) # THEN: parse_verse_number should return the verse number self.assertEqual(result, 15)
def process_verses_stop_import_test(self): """ Test process_verses when stop_import is set to True """ # GIVEN: An isntance of OpenSongBible importer = OpenSongBible(MagicMock(), path='.', name='.', filename='') importer.parse_verse_number = MagicMock() # WHEN: stop_import_flag is set to True importer.stop_import_flag = True importer.process_verses('Book', 1, 'Verses') # THEN: importer.parse_verse_number not have been called self.assertFalse(importer.parse_verse_number.called)
def test_parse_verse_number_invalid_type(self): """ Test parse_verse_number when the verse number is an invalid type) """ with patch.object(OpenSongBible, 'log_warning') as mocked_log_warning: # GIVEN: An instanceofOpenSongBible, a Tuple, and the previous verse number set as 12 importer = OpenSongBible(MagicMock(), path='.', name='.', file_path=None) # WHEN: Calling parse_verse_number result = importer.parse_verse_number((1, 2, 3), 12) # THEN: parse_verse_number should log the verse number it was called with increment the previous verse # number mocked_log_warning.assert_called_once_with( 'Illegal verse number: (1, 2, 3)') assert result == 13