generated from jCloud/repository-template
Change python package namespace sub namespaces to list
This commit is contained in:
@@ -21,10 +21,9 @@ def test_PythonDocumentationGenerator_type_exceptions(project_directory, docs_di
|
||||
PythonDocumentationGenerator(project_directory, docs_directory)
|
||||
|
||||
@pytest.mark.parametrize('python_documentation_generator,expected', [
|
||||
(PythonDocumentationGenerator(ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_1'), ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_1/docs')), PythonPackageNamespace('src', {})),
|
||||
(PythonDocumentationGenerator(ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_2'), ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_2/docs')), PythonPackageNamespace('src', {'module': PythonModuleNamespace('module')})),
|
||||
(PythonDocumentationGenerator(ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_3'), ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_3/docs')), PythonPackageNamespace('src', {'module': PythonModuleNamespace('module'), 'pkg': PythonPackageNamespace('pkg', {'module2': PythonModuleNamespace('module2')})})),
|
||||
(PythonDocumentationGenerator(ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_1'), ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_1/docs')), []),
|
||||
(PythonDocumentationGenerator(ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_2'), ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_2/docs')), [PythonPackageNamespace('pkg', [PythonModuleNamespace('module')])]),
|
||||
(PythonDocumentationGenerator(ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_3'), ExistingDirectory('tests/unit/core/python/_core/test_project_dirs/pdir_3/docs')), [PythonPackageNamespace('pkg', [PythonModuleNamespace('module'), PythonPackageNamespace('pkg', [PythonModuleNamespace('module2')])])]),
|
||||
])
|
||||
def test_PythonDocumentationGenerator_collect_modules(python_documentation_generator: PythonDocumentationGenerator, expected):
|
||||
print('MODS:', python_documentation_generator.namespace())
|
||||
assert python_documentation_generator.namespace() == expected
|
||||
@@ -5,40 +5,40 @@ from src.jcloud_docsgen.exceptions import NamespaceNotFoundError, InvalidNamespa
|
||||
class StrSubclass(str): ...
|
||||
|
||||
@pytest.mark.parametrize('namespace,expected_name', [
|
||||
(PythonPackageNamespace('a', {}), 'a'),
|
||||
(PythonPackageNamespace('1', {}), '1'),
|
||||
(PythonPackageNamespace(StrSubclass('a'), {}), StrSubclass('a')),
|
||||
(PythonPackageNamespace('a', []), 'a'),
|
||||
(PythonPackageNamespace('1', []), '1'),
|
||||
(PythonPackageNamespace(StrSubclass('a'), []), StrSubclass('a')),
|
||||
])
|
||||
def test_PythonPackageNamespace_name_attribute(namespace, expected_name):
|
||||
assert namespace.name == expected_name
|
||||
|
||||
namespace_b = PythonModuleNamespace('b')
|
||||
namespace_a = PythonPackageNamespace('a', {
|
||||
'b': namespace_b
|
||||
})
|
||||
namespace_a = PythonPackageNamespace('a', [
|
||||
namespace_b
|
||||
])
|
||||
namespace_c = PythonModuleNamespace('c')
|
||||
namespace_k = PythonModuleNamespace('k')
|
||||
namespace_j = PythonPackageNamespace('j', {'k': namespace_k})
|
||||
namespace_i = PythonPackageNamespace('i', {'j': namespace_j})
|
||||
namespace_h = PythonPackageNamespace('h', {'i': namespace_i})
|
||||
namespace_g = PythonPackageNamespace('g', {'h': namespace_h})
|
||||
namespace_f = PythonPackageNamespace('f', {'g': namespace_g})
|
||||
namespace_e = PythonPackageNamespace('e', {'f': namespace_f})
|
||||
namespace_d = PythonPackageNamespace('d', {'e': namespace_e})
|
||||
namespace_j = PythonPackageNamespace('j', [namespace_k])
|
||||
namespace_i = PythonPackageNamespace('i', [namespace_j])
|
||||
namespace_h = PythonPackageNamespace('h', [namespace_i])
|
||||
namespace_g = PythonPackageNamespace('g', [namespace_h])
|
||||
namespace_f = PythonPackageNamespace('f', [namespace_g])
|
||||
namespace_e = PythonPackageNamespace('e', [namespace_f])
|
||||
namespace_d = PythonPackageNamespace('d', [namespace_e])
|
||||
|
||||
@pytest.mark.parametrize('namespace,sub_namespaces,expected', [
|
||||
(PythonPackageNamespace('name', {
|
||||
'a': namespace_a,
|
||||
'c': namespace_c
|
||||
}), ['c'], namespace_c),
|
||||
(PythonPackageNamespace('name', {
|
||||
'a': namespace_a,
|
||||
'c': namespace_c
|
||||
}), ['a'], namespace_a),
|
||||
(PythonPackageNamespace('name', {
|
||||
'a': namespace_a,
|
||||
'c': namespace_c
|
||||
}), ['a', 'b'], namespace_b),
|
||||
(PythonPackageNamespace('name', [
|
||||
namespace_a,
|
||||
namespace_c
|
||||
]), ['c'], namespace_c),
|
||||
(PythonPackageNamespace('name', [
|
||||
namespace_a,
|
||||
namespace_c
|
||||
]), ['a'], namespace_a),
|
||||
(PythonPackageNamespace('name', [
|
||||
namespace_a,
|
||||
namespace_c
|
||||
]), ['a', 'b'], namespace_b),
|
||||
(namespace_d, ['e', 'f', 'g', 'h', 'i'], namespace_i),
|
||||
(namespace_d, ['e', 'f', 'g', 'h', 'i', 'j'], namespace_j),
|
||||
(namespace_d, ['e', 'f', 'g', 'h', 'i', 'j', 'k'], namespace_k),
|
||||
@@ -59,30 +59,38 @@ def test_PythonPackageNamespace_namespace_exceptions(namespace, sub_namespaces,
|
||||
assert str(exc_info.value) == expected_exception_msg
|
||||
|
||||
@pytest.mark.parametrize('namespace,expected', [
|
||||
(PythonPackageNamespace('a', {'b': PythonModuleNamespace('b')}), {'b': 'b'}),
|
||||
(PythonPackageNamespace('a', {'b': PythonModuleNamespace('b'), 'c': PythonPackageNamespace('c', {'d': PythonModuleNamespace('d')})}), {'b': 'b', 'c': {'d': 'd'}}),
|
||||
(PythonPackageNamespace('a', {}), {})
|
||||
(PythonPackageNamespace('a', [PythonModuleNamespace('b')]), {'b': 'b'}),
|
||||
(PythonPackageNamespace('a', [PythonModuleNamespace('b'), PythonPackageNamespace('c', [PythonModuleNamespace('d')])]), {'b': 'b', 'c': {'d': 'd'}}),
|
||||
(PythonPackageNamespace('a', []), {})
|
||||
])
|
||||
def test_PythonPackageNamespace_sub_namespace_names(namespace, expected):
|
||||
print('NAMESPACE NAMESPACE NAMESPACE NAMESPACE NAMESPACE:', namespace)
|
||||
assert namespace.sub_namespace_names() == expected
|
||||
|
||||
@pytest.mark.parametrize('namespace1,namespace2,expected', [
|
||||
(PythonPackageNamespace('a', {'b': PythonModuleNamespace('b')}), PythonPackageNamespace('a', {'b': PythonModuleNamespace('b')}), True),
|
||||
(PythonPackageNamespace('a', {'b': PythonModuleNamespace('b'), 'c': PythonPackageNamespace('c', {'d': PythonModuleNamespace('d')})}), PythonPackageNamespace('a', {'b': PythonModuleNamespace('b'), 'c': PythonPackageNamespace('c', {'d': PythonModuleNamespace('d')})}), True),
|
||||
(PythonPackageNamespace('a', {}), PythonPackageNamespace('a', {}), True),
|
||||
(PythonPackageNamespace('a', {}), PythonPackageNamespace('b', {}), False),
|
||||
(PythonPackageNamespace('a', [PythonModuleNamespace('b')]), PythonPackageNamespace('a', [PythonModuleNamespace('b')]), True),
|
||||
(PythonPackageNamespace('a', [PythonModuleNamespace('b'), PythonPackageNamespace('c', [PythonModuleNamespace('d')])]), PythonPackageNamespace('a', [PythonModuleNamespace('b'), PythonPackageNamespace('c', [PythonModuleNamespace('d')])]), True),
|
||||
(PythonPackageNamespace('a', []), PythonPackageNamespace('a', []), True),
|
||||
(PythonPackageNamespace('a', []), PythonPackageNamespace('b', []), False),
|
||||
])
|
||||
def test_PythonPackageNamespace___eq__(namespace1, namespace2, expected):
|
||||
assert (namespace1 == namespace2) == expected
|
||||
assert (namespace2 == namespace1) == expected
|
||||
|
||||
@pytest.mark.parametrize('namespace,expected', [
|
||||
(PythonPackageNamespace('a', {}), 'PythonPackageNamespace(\'a\', {})'),
|
||||
(PythonPackageNamespace('1', {}), 'PythonPackageNamespace(\'1\', {})'),
|
||||
(PythonPackageNamespace(StrSubclass('a'), {}), 'PythonPackageNamespace(\'a\', {})'),
|
||||
(namespace_a, 'PythonPackageNamespace(\'a\', {\'b\': PythonModuleNamespace(\'b\')})'),
|
||||
(namespace_d, 'PythonPackageNamespace(\'d\', {\'e\': PythonPackageNamespace(\'e\', {\'f\': PythonPackageNamespace(\'f\', {\'g\': PythonPackageNamespace(\'g\', {\'h\': PythonPackageNamespace(\'h\', {\'i\': PythonPackageNamespace(\'i\', {\'j\': PythonPackageNamespace(\'j\', {\'k\': PythonModuleNamespace(\'k\')})})})})})})})')
|
||||
(PythonPackageNamespace('a', []), 'PythonPackageNamespace(\'a\', [])'),
|
||||
(PythonPackageNamespace('1', []), 'PythonPackageNamespace(\'1\', [])'),
|
||||
(PythonPackageNamespace(StrSubclass('a'), []), 'PythonPackageNamespace(\'a\', [])'),
|
||||
(namespace_a, 'PythonPackageNamespace(\'a\', [PythonModuleNamespace(\'b\')])'),
|
||||
(namespace_d, 'PythonPackageNamespace(\'d\', [PythonPackageNamespace(\'e\', [PythonPackageNamespace(\'f\', [PythonPackageNamespace(\'g\', [PythonPackageNamespace(\'h\', [PythonPackageNamespace(\'i\', [PythonPackageNamespace(\'j\', [PythonModuleNamespace(\'k\')])])])])])])])')
|
||||
])
|
||||
def test_PythonPackageNamespace_string_representation(namespace, expected):
|
||||
assert repr(namespace) == expected
|
||||
print(namespace)
|
||||
assert repr(namespace) == expected
|
||||
|
||||
@pytest.mark.parametrize('namespace,new_namespace,expected', [
|
||||
(PythonPackageNamespace('a', []), PythonModuleNamespace('b'), PythonPackageNamespace('a', [PythonModuleNamespace('b')]))
|
||||
])
|
||||
def test_PythonPackageNamespace___getitem__(namespace, new_namespace, expected):
|
||||
namespace.add(new_namespace)
|
||||
assert namespace == expected
|
||||
Reference in New Issue
Block a user