From 6d2b32a736865b160fc962e9960dcc80cb14c519 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sun, 27 Sep 2026 22:01:19 +0200 Subject: [PATCH 1/4] feat(python-generator): check type at module namespace comparision Added type check to the Python module namespace comparision function. --- src/jcloud_docsgen/core/python/namespaces.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jcloud_docsgen/core/python/namespaces.py b/src/jcloud_docsgen/core/python/namespaces.py index e113583..073a73f 100644 --- a/src/jcloud_docsgen/core/python/namespaces.py +++ b/src/jcloud_docsgen/core/python/namespaces.py @@ -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 From f102fa80cea4f8ff33ea8b0614a4aaa275130a4f Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sun, 27 Sep 2026 22:04:32 +0200 Subject: [PATCH 2/4] test(python-generator): add test cases for module namespace comparision Added test cases with different types for Python module namespace comparision test. --- .../python/namespaces/test_PythonModuleNamespace.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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): From ec262ef99e8ce94ffeea8b840cb38f74eec5ae33 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sun, 27 Sep 2026 22:07:12 +0200 Subject: [PATCH 3/4] feat(python-generator): check type at package namespace comparision Added type check to the Python package namespace comparision function. --- src/jcloud_docsgen/core/python/namespaces.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jcloud_docsgen/core/python/namespaces.py b/src/jcloud_docsgen/core/python/namespaces.py index 073a73f..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() From 3865db79194b99988d7fa5e471d9a0686009a3dc Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Sun, 27 Sep 2026 22:07:58 +0200 Subject: [PATCH 4/4] test(python-generator): add test cases for package namespace comparision Added test cases with different types for Python package namespace comparision test. --- .../namespaces/test_PythonPackageNamespace.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) 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):