def test_FileRebuild(self): from twisted.python.util import sibpath import shutil, time shutil.copyfile( sibpath(__file__, "myrebuilder1.py"), os.path.join(self.fakelibPath, "myrebuilder.py"), ) from twisted_rebuild_fakelib import myrebuilder # type: ignore[import] a = myrebuilder.A() b = myrebuilder.B() i = myrebuilder.Inherit() self.assertEqual(a.a(), "a") # Necessary because the file has not "changed" if a second has not gone # by in unix. This sucks, but it's not often that you'll be doing more # than one reload per second. time.sleep(1.1) shutil.copyfile( sibpath(__file__, "myrebuilder2.py"), os.path.join(self.fakelibPath, "myrebuilder.py"), ) rebuild.rebuild(myrebuilder) b2 = myrebuilder.B() self.assertEqual(b2.b(), "c") self.assertEqual(b.b(), "c") self.assertEqual(i.a(), "d") self.assertEqual(a.a(), "b")
def testFileRebuild(self): from twisted.python.rebuild import rebuild from twisted.python.util import sibpath import shutil, time shutil.copyfile(sibpath(__file__, "myrebuilder1.py"), os.path.join(self.fakelibPath, "myrebuilder.py")) from twisted_rebuild_fakelib import myrebuilder a = myrebuilder.A() try: object except NameError: pass else: from twisted.test import test_rebuild b = myrebuilder.B() class C(myrebuilder.B): pass test_rebuild.C = C c = C() i = myrebuilder.Inherit() self.assertEquals(a.a(), 'a') # necessary because the file has not "changed" if a second has not gone # by in unix. This sucks, but it's not often that you'll be doing more # than one reload per second. time.sleep(1.1) shutil.copyfile(sibpath(__file__, "myrebuilder2.py"), os.path.join(self.fakelibPath, "myrebuilder.py")) rebuild(myrebuilder) try: object except NameError: pass else: b2 = myrebuilder.B() self.assertEquals(b2.b(), 'c') self.assertEquals(b.b(), 'c') self.assertEquals(i.a(), 'd') self.assertEquals(a.a(), 'b')