def test_change_hierarchy_old_style(self): class F: def m1(self): return 1 class B: def super_call(self): return 2 class G(B): def m1(self): return self.super_call() self.assertEqual(F().m1(), 1) old = pydevd_reload.notify_error self._called = False def on_error(*args): self._called = True try: pydevd_reload.notify_error = on_error pydevd_reload.Reload(None)._update(None, None, F, G) self.assertTrue(self._called) finally: pydevd_reload.notify_error = old
def test_pydevd_reload3(self): class F: def m1(self): return 1 class G: def m1(self): return 2 self.assertEqual(F().m1(), 1) pydevd_reload.Reload(None)._update(None, None, F, G) self.assertEqual(F().m1(), 2)
def test_pydevd_reload4(self): class F: pass F.m1 = lambda a:None class G: pass G.m1 = lambda a:10 self.assertEqual(F().m1(), None) pydevd_reload.Reload(None)._update(None, None, F, G) self.assertEqual(F().m1(), 10)
def test_metaclass(self): class Meta(type): def __init__(cls, name, bases, attrs): super(Meta, cls).__init__(name, bases, attrs) class F(metaclass=Meta): def m1(self): return 1 class G(metaclass=Meta): def m1(self): return 2 self.assertEqual(F().m1(), 1) pydevd_reload.Reload(None)._update(None, None, F, G) self.assertEqual(F().m1(), 2)