From fcffd707c6f8d959d7dc7c6e7a91fa2f59fd0308 Mon Sep 17 00:00:00 2001 From: Patrick Kingston <66141901+pkingstonxyz@users.noreply.github.com> Date: Thu, 26 Jun 2025 20:14:20 -0400 Subject: [PATCH] Test multiple inheritance in _utils get_all_subclasses (#85396) Should bring code coverage in _utils.py to 100%. Ensures get_all_subclasses won't enter infinite recursion. --- test/units/module_utils/common/test_utils.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/units/module_utils/common/test_utils.py b/test/units/module_utils/common/test_utils.py index 9fe56c924b4..9657f5d6fdb 100644 --- a/test/units/module_utils/common/test_utils.py +++ b/test/units/module_utils/common/test_utils.py @@ -33,6 +33,18 @@ class TestGetAllSubclasses: class BranchIIB(BranchII): pass + class MultipleInheritanceBase: + pass + + class MultipleInheritanceBranchI(MultipleInheritanceBase): + pass + + class MultipleInheritanceBranchII(MultipleInheritanceBase): + pass + + class MultipleInheritanceChild(MultipleInheritanceBranchI, MultipleInheritanceBranchII): + pass + def test_bottom_level(self): assert get_all_subclasses(self.BranchIIB) == set() @@ -43,3 +55,8 @@ class TestGetAllSubclasses: assert set(get_all_subclasses(self.Base)) == set([self.BranchI, self.BranchII, self.BranchIA, self.BranchIB, self.BranchIIA, self.BranchIIB]) + + def test_multiple_inheritance(self) -> None: + assert get_all_subclasses(self.MultipleInheritanceBase) == {self.MultipleInheritanceBranchI, + self.MultipleInheritanceBranchII, + self.MultipleInheritanceChild}