diff --git a/src/jcloud_docsgen/core/python/namespaces.py b/src/jcloud_docsgen/core/python/namespaces.py index e113583..706a816 100644 --- a/src/jcloud_docsgen/core/python/namespaces.py +++ b/src/jcloud_docsgen/core/python/namespaces.py @@ -156,7 +156,7 @@ class PythonPackageNamespace(PythonNamespace): # For performance reasons, is not called self.sub_namespace_names # if the name attribute does not match, which can be quickly # verified - if self.name != value.name: + if not (isinstance(value, type(self)) and self.name == value.name): return False return value.sub_namespace_names() == self.sub_namespace_names() @@ -223,4 +223,4 @@ class PythonModuleNamespace(PythonNamespace): super().__init__(name) def __eq__(self, value: PythonModuleNamespace) -> bool: - return self.name == value.name + return isinstance(value, type(self)) and self.name == value.name diff --git a/tests/unit/core/python/namespaces/test_PythonModuleNamespace.py b/tests/unit/core/python/namespaces/test_PythonModuleNamespace.py index 7433a84..53d7e0e 100644 --- a/tests/unit/core/python/namespaces/test_PythonModuleNamespace.py +++ b/tests/unit/core/python/namespaces/test_PythonModuleNamespace.py @@ -14,7 +14,11 @@ import pytest -from src.jcloud_docsgen.core.python.namespaces import PythonModuleNamespace +from src.jcloud_docsgen.core.python.namespaces import ( + PythonModuleNamespace, + PythonNamespace, + PythonPackageNamespace, +) class StrSubclass(str): ... @@ -42,6 +46,10 @@ def test_PythonModuleNamespace_name_attribute(namespace, expected_name): (PythonModuleNamespace('a'), PythonModuleNamespace('b'), False), (PythonModuleNamespace('0'), PythonModuleNamespace('-0'), False), (PythonModuleNamespace('1'), PythonModuleNamespace('a'), False), + (PythonModuleNamespace('a'), 'a', False), + (PythonModuleNamespace('a'), 'b', False), + (PythonModuleNamespace('a'), PythonPackageNamespace('a', []), False), + (PythonModuleNamespace('a'), PythonNamespace('a'), False), ], ) def test_PythonModuleNamespace___eq__(namespace1, namespace2, expected): diff --git a/tests/unit/core/python/namespaces/test_PythonPackageNamespace.py b/tests/unit/core/python/namespaces/test_PythonPackageNamespace.py index b564a9b..1087cf0 100644 --- a/tests/unit/core/python/namespaces/test_PythonPackageNamespace.py +++ b/tests/unit/core/python/namespaces/test_PythonPackageNamespace.py @@ -16,6 +16,7 @@ import pytest from src.jcloud_docsgen.core.python.namespaces import ( PythonModuleNamespace, + PythonNamespace, PythonPackageNamespace, ) from src.jcloud_docsgen.exceptions import ( @@ -256,6 +257,26 @@ def test_PythonPackageNamespace_sub_namespace_names(namespace, expected): PythonPackageNamespace('b', []), False, ), + ( + PythonPackageNamespace('a', []), + 'a', + False, + ), + ( + PythonPackageNamespace('a', []), + 'b', + False, + ), + ( + PythonPackageNamespace('a', []), + PythonModuleNamespace('a'), + False, + ), + ( + PythonPackageNamespace('a', []), + PythonNamespace('a'), + False, + ), ], ) def test_PythonPackageNamespace___eq__(namespace1, namespace2, expected):