Add function to ensure a non-empty string.

This commit is contained in:
2026-04-19 19:10:45 +02:00
parent b71b93000e
commit 3b45c1a8ed
3 changed files with 57 additions and 2 deletions
+1
View File
@@ -22,3 +22,4 @@
- Add feature to get the signature representation of a Python function argument - Add feature to get the signature representation of a Python function argument
- Add class for Python docstrings - Add class for Python docstrings
- Add feature to parse Python docstrings - Add feature to parse Python docstrings
- Add function to ensure a non-empty string.
+24
View File
@@ -128,3 +128,27 @@ def assert_that_is_instance(obj: object, class_or_tuple: Union[type, types.Union
else: else:
exception_message_expected = '\'' + class_or_tuple.__name__ + '\'' exception_message_expected = '\'' + class_or_tuple.__name__ + '\''
raise TypeError(f'expected {exception_message_expected}, got \'{type(obj).__name__}\'') raise TypeError(f'expected {exception_message_expected}, got \'{type(obj).__name__}\'')
def non_empty_str(value: Union[str, None]) -> Union[str, None]:
'''
Returns the value or ``None``.
Returns the value if it is not empty and not `Ǹone``; otherwise,
returns ``None``.
Please note: values are stripped, i. e. if the value consists only
of spaces, it is also considered empty.
:param value: The value.
:type value: Union[str, None]
:return: The value or ``None``.
:rtype: Union[str, None]
'''
if value is None:
return None
if value.strip() == '':
return None
return value
+30
View File
@@ -0,0 +1,30 @@
# Copyright 2026 jCloud Services GbR
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from src.jcloud_docsgen.utils import non_empty_str
import pytest
@pytest.mark.parametrize('value,expected', [
(None, None),
('', None),
(' ', None),
(' ', None),
(' ', None),
(' a ', ' a '),
(' a', ' a'),
('a ', 'a '),
('a', 'a'),
])
def test_non_empty_str(value, expected):
assert non_empty_str(value) == expected