forked from openlp/openlp
Instead of raising an error when converting paths, return None and log an error.
The method is allowed to return None, so calling functions should handle that. Raising an error is very rude behavior and the output just said that the input was invalid with no real clue as to what is wrong. Now None is returned without causing too much hassle, and a proper error is logged mentioning what exactly caused the error. The test case was updated. This is sort of related to https://bugs.launchpad.net/openlp/+bug/1786601 in that this would have been nice to actually know what went wrong and failback to None. bzr-revno: 2829
This commit is contained in:
commit
f833150003
@ -206,7 +206,8 @@ def str_to_path(string):
|
||||
:rtype: openlp.core.common.path.Path | None
|
||||
"""
|
||||
if not isinstance(string, str):
|
||||
raise TypeError('parameter \'string\' must be of type str')
|
||||
log.error('parameter \'string\' must be of type str, got {} which is a {} instead'.format(string, type(string)))
|
||||
return None
|
||||
if string == '':
|
||||
return None
|
||||
return Path(string)
|
||||
|
@ -271,13 +271,12 @@ class TestPath(TestCase):
|
||||
|
||||
def test_str_to_path_type_error(self):
|
||||
"""
|
||||
Test that `str_to_path` raises a type error when called with an invalid type
|
||||
Test that `str_to_path` returns None if called with invalid information
|
||||
"""
|
||||
# GIVEN: The `str_to_path` function
|
||||
# WHEN: Calling `str_to_path` with an invalid Type
|
||||
# THEN: A TypeError should have been raised
|
||||
with self.assertRaises(TypeError):
|
||||
str_to_path(Path())
|
||||
# THEN: None is returned
|
||||
assert str_to_path(Path()) is None
|
||||
|
||||
def test_str_to_path_empty_str(self):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user