def test_ancestors_conditions(self): """tests get_ancestors_conditions()""" pre, post, inv = get_ancestors_conditions(SillySubclass, 'silly_func') self.assertEquals(pre, [['value < 10']]) self.assertEquals(post, [ ["type(__return__) == type('') and int(__return__) < 15", "__old__.value != __old__.self.invariant"] ]) self.assertEquals(inv, [[], ['self.invariant == 12'], []])
def test_invariant_with_several_modules(self): """tests invariant list when classes are defined in several modules""" class FakeModule: """inv: a is None """ class AnotherFakeModule: """inv: b is None """ class BaseClass: def foo(self): pass class ExtendedClass(BaseClass): def foo(self): pass BaseClass.__module__ = FakeModule ExtendedClass.__module__ = AnotherFakeModule # print ".................. ", ExtendedClass.__module__ pre, post, inv = get_ancestors_conditions(ExtendedClass, 'foo') self.assertEquals(inv, [['b is None'], ['a is None'], [], []])