diff options
author | Jason Kirtland <jek@discorporate.us> | 2008-08-15 22:54:35 +0000 |
---|---|---|
committer | Jason Kirtland <jek@discorporate.us> | 2008-08-15 22:54:35 +0000 |
commit | aaf72e05f199d7d29a039aa6d08a7e005a01448a (patch) | |
tree | 37f854b0945cb9622febac1607bf0959c3f6291f /test/base/utils.py | |
parent | d70ed586c74feb947a412f2b5aa1496e11465cdf (diff) | |
download | sqlalchemy-aaf72e05f199d7d29a039aa6d08a7e005a01448a.tar.gz |
- Ignore old-style classes when building inheritance graphs. [ticket:1078]
Diffstat (limited to 'test/base/utils.py')
-rw-r--r-- | test/base/utils.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/base/utils.py b/test/base/utils.py index 3ce956a16..2c4edc692 100644 --- a/test/base/utils.py +++ b/test/base/utils.py @@ -884,5 +884,40 @@ class AsInterfaceTest(TestBase): obj = {'foo': 123} self.assertRaises(TypeError, util.as_interface, obj, cls=self.Something) + +class TestClassHierarchy(TestBase): + def test_object(self): + eq_(set(util.class_hierarchy(object)), set((object,))) + + def test_single(self): + class A(object): + pass + + class B(object): + pass + + eq_(set(util.class_hierarchy(A)), set((A, object))) + eq_(set(util.class_hierarchy(B)), set((B, object))) + + class C(A, B): + pass + + eq_(set(util.class_hierarchy(A)), set((A, B, C, object))) + eq_(set(util.class_hierarchy(B)), set((A, B, C, object))) + + def test_oldstyle_mixin(self): + class A(object): + pass + + class Mixin: + pass + + class B(A, Mixin): + pass + + eq_(set(util.class_hierarchy(B)), set((A, B, object))) + eq_(set(util.class_hierarchy(Mixin)), set()) + eq_(set(util.class_hierarchy(A)), set((A, B, object))) + if __name__ == "__main__": testenv.main() |