From 958d007e006eeee2e9f18081a0a7fbabd573d925 Mon Sep 17 00:00:00 2001 From: tligui_y Date: Mon, 28 Jul 2025 17:26:17 +0200 Subject: [PATCH] Add tests/test_utils_metaclasses.py --- tests/test_utils_metaclasses.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/test_utils_metaclasses.py diff --git a/tests/test_utils_metaclasses.py b/tests/test_utils_metaclasses.py new file mode 100644 index 000000000..9adcb8c7f --- /dev/null +++ b/tests/test_utils_metaclasses.py @@ -0,0 +1,32 @@ +import pytest +import sys +import os +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) +from slic.utils.metaclasses import * + +# Base classes +class A: + def method_a(self): + return "A" + +class B: + def method_b(self): + return "B" + +# Combine A and B into a single metaclass +CombinedMeta = combine_classes(A, B) + +# Use it as metaclass for a new class +class MyCombinedClass(metaclass=CombinedMeta): + pass + +def test_combine_classes_as_metaclass(): + + obj = MyCombinedClass() + + # Verify that methods from both base classes are available + assert isinstance(obj, MyCombinedClass) + assert isinstance(obj, A) # via metaclass + assert isinstance(obj, B) # via metaclass + assert obj.method_a() == "A" + assert obj.method_b() == "B"