/usr/lib/python3/dist-packages/twisted/test
NameSizeModeActions
__pycache__/-0755rm
cert.pem.no_trailing_newline14140644editdlrm
crash_test_dummy.py5490644editdlrm
ignore_test_failure.py314590644editdlrm
iosim.py181630644editdlrm
key.pem.no_trailing_newline17070644editdlrm
mock_win32process.py12990644editdlrm
myrebuilder1.py1510644editdlrm
myrebuilder2.py1510644editdlrm
plugin_basic.py9010644editdlrm
plugin_extra1.py3920644editdlrm
plugin_extra2.py5500644editdlrm
process_cmdline.py1230644editdlrm
process_echoer.py2140644editdlrm
process_fds.py9840644editdlrm
process_getargv.py2340644editdlrm
process_getenv.py2680644editdlrm
process_linger.py2970644editdlrm
process_reader.py1780644editdlrm
process_signal.py2200644editdlrm
process_stdinreader.py7390644editdlrm
process_tester.py7790644editdlrm
process_tty.py1300644editdlrm
process_twisted.py11820644editdlrm
proto_helpers.py13680644editdlrm
reflect_helper_IE.py600644editdlrm
reflect_helper_VE.py810644editdlrm
reflect_helper_ZDE.py480644editdlrm
server.pem44440644editdlrm
ssl_helpers.py16500644editdlrm
stdio_test_consumer.py11680644editdlrm
stdio_test_halfclose.py20470644editdlrm
stdio_test_hostpeer.py10890644editdlrm
stdio_test_lastwrite.py11540644editdlrm
stdio_test_loseconn.py15830644editdlrm
stdio_test_producer.py14840644editdlrm
stdio_test_write.py9020644editdlrm
stdio_test_writeseq.py8940644editdlrm
testutils.py51780644editdlrm
test_abstract.py34350644editdlrm
test_adbapi.py261750644editdlrm
test_amp.py1105140644editdlrm
test_application.py341400644editdlrm
test_compat.py181720644editdlrm
test_context.py14640644editdlrm
test_cooperator.py213390644editdlrm
test_defer.py1247820644editdlrm
test_defgen.py106340644editdlrm
test_dict.py15280644editdlrm
test_dirdbm.py68510644editdlrm
test_error.py89260644editdlrm
test_factories.py45670644editdlrm
test_fdesc.py74520644editdlrm
test_finger.py18940644editdlrm
test_formmethod.py39610644editdlrm
test_ftp.py1300020644editdlrm
test_ftp_options.py26880644editdlrm
test_htb.py31540644editdlrm
test_ident.py67180644editdlrm
test_internet.py464690644editdlrm
test_iosim.py89080644editdlrm
test_iutils.py136320644editdlrm
test_lockfile.py153360644editdlrm
test_log.py360730644editdlrm
test_logfile.py178910644editdlrm
test_loopback.py143210644editdlrm
test_main.py21660644editdlrm
test_memcache.py252840644editdlrm
test_modules.py174280644editdlrm
test_monkey.py55190644editdlrm
test_paths.py709720644editdlrm
test_pcp.py125280644editdlrm
test_persisted.py134070644editdlrm
test_plugin.py253840644editdlrm
test_policies.py330610644editdlrm
test_postfix.py44270644editdlrm
test_process.py872030644editdlrm
test_protocols.py73340644editdlrm
test_randbytes.py32700644editdlrm
test_rebuild.py73230644editdlrm
test_reflect.py244690644editdlrm
test_roots.py16430644editdlrm
test_shortcut.py19620644editdlrm
test_sip.py254980644editdlrm
test_sob.py56670644editdlrm
test_socks.py174960644editdlrm
test_ssl.py233010644editdlrm
test_sslverify.py1166270644editdlrm
test_stateful.py20150644editdlrm
test_stdio.py127300644editdlrm
test_strerror.py52470644editdlrm
test_strports.py17050644editdlrm
test_task.py463480644editdlrm
test_tcp.py658130644editdlrm
test_tcp_internals.py130360644editdlrm
test_text.py63670644editdlrm
test_threadable.py33380644editdlrm
test_threadpool.py219560644editdlrm
test_threads.py132110644editdlrm
test_tpfile.py15450644editdlrm
test_twistd.py737680644editdlrm
test_twisted.py62770644editdlrm
test_udp.py250120644editdlrm
test_unix.py135790644editdlrm
test_usage.py233110644editdlrm
__init__.py4750644editdlrm
Edit: /usr/lib/python3/dist-packages/twisted/test/test_rebuild.py (7323B)
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. import os import sys import types from twisted.python import rebuild from twisted.trial.unittest import TestCase from . import crash_test_dummy f = crash_test_dummy.foo class Foo: pass class Bar(Foo): pass class Baz: pass class Buz(Bar, Baz): pass class HashRaisesRuntimeError: """ Things that don't hash (raise an Exception) should be ignored by the rebuilder. @ivar hashCalled: C{bool} set to True when __hash__ is called. """ def __init__(self): self.hashCalled = False def __hash__(self): self.hashCalled = True raise RuntimeError("not a TypeError!") # Set in test_hashException unhashableObject = None class RebuildTests(TestCase): """ Simple testcase for rebuilding, to at least exercise the code. """ def setUp(self): self.libPath = self.mktemp() os.mkdir(self.libPath) self.fakelibPath = os.path.join(self.libPath, "twisted_rebuild_fakelib") os.mkdir(self.fakelibPath) open(os.path.join(self.fakelibPath, "__init__.py"), "w").close() sys.path.insert(0, self.libPath) def tearDown(self): sys.path.remove(self.libPath) def test_FileRebuild(self): import shutil import time from twisted.python.util import sibpath 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 test_Rebuild(self): """ Rebuilding an unchanged module. """ # This test would actually pass if rebuild was a no-op, but it # ensures rebuild doesn't break stuff while being a less # complex test than testFileRebuild. x = crash_test_dummy.X("a") rebuild.rebuild(crash_test_dummy, doLog=False) # Instance rebuilding is triggered by attribute access. x.do() self.assertEqual(x.__class__, crash_test_dummy.X) self.assertEqual(f, crash_test_dummy.foo) def test_ComponentInteraction(self): x = crash_test_dummy.XComponent() x.setAdapter(crash_test_dummy.IX, crash_test_dummy.XA) x.getComponent(crash_test_dummy.IX) rebuild.rebuild(crash_test_dummy, 0) newComponent = x.getComponent(crash_test_dummy.IX) newComponent.method() self.assertEqual(newComponent.__class__, crash_test_dummy.XA) # Test that a duplicate registerAdapter is not allowed from twisted.python import components self.assertRaises( ValueError, components.registerAdapter, crash_test_dummy.XA, crash_test_dummy.X, crash_test_dummy.IX, ) def test_UpdateInstance(self): global Foo, Buz b = Buz() class Foo: def foo(self): """ Dummy method """ class Buz(Bar, Baz): x = 10 rebuild.updateInstance(b) assert hasattr(b, "foo"), "Missing method on rebuilt instance" assert hasattr(b, "x"), "Missing class attribute on rebuilt instance" def test_BananaInteraction(self): from twisted.python import rebuild from twisted.spread import banana rebuild.latestClass(banana.Banana) def test_hashException(self): """ Rebuilding something that has a __hash__ that raises a non-TypeError shouldn't cause rebuild to die. """ global unhashableObject unhashableObject = HashRaisesRuntimeError() def _cleanup(): global unhashableObject unhashableObject = None self.addCleanup(_cleanup) rebuild.rebuild(rebuild) self.assertTrue(unhashableObject.hashCalled) def test_Sensitive(self): """ L{twisted.python.rebuild.Sensitive} """ from twisted.python import rebuild from twisted.python.rebuild import Sensitive class TestSensitive(Sensitive): def test_method(self): """ Dummy method """ testSensitive = TestSensitive() testSensitive.rebuildUpToDate() self.assertFalse(testSensitive.needRebuildUpdate()) # Test rebuilding a builtin class newException = rebuild.latestClass(Exception) self.assertEqual(repr(Exception), repr(newException)) self.assertEqual(newException, testSensitive.latestVersionOf(newException)) # Test types.MethodType on method in class self.assertEqual( TestSensitive.test_method, testSensitive.latestVersionOf(TestSensitive.test_method), ) # Test types.MethodType on method in instance of class self.assertEqual( testSensitive.test_method, testSensitive.latestVersionOf(testSensitive.test_method), ) # Test a class self.assertEqual(TestSensitive, testSensitive.latestVersionOf(TestSensitive)) def myFunction(): """ Dummy method """ # Test types.FunctionType self.assertEqual(myFunction, testSensitive.latestVersionOf(myFunction)) class NewStyleTests(TestCase): """ Tests for rebuilding new-style classes of various sorts. """ def setUp(self): self.m = types.ModuleType("whipping") sys.modules["whipping"] = self.m def tearDown(self): del sys.modules["whipping"] del self.m def test_slots(self): """ Try to rebuild a new style class with slots defined. """ classDefinition = "class SlottedClass:\n" " __slots__ = ['a']\n" exec(classDefinition, self.m.__dict__) inst = self.m.SlottedClass() inst.a = 7 exec(classDefinition, self.m.__dict__) rebuild.updateInstance(inst) self.assertEqual(inst.a, 7) self.assertIs(type(inst), self.m.SlottedClass) def test_typeSubclass(self): """ Try to rebuild a base type subclass. """ classDefinition = "class ListSubclass(list):\n" " pass\n" exec(classDefinition, self.m.__dict__) inst = self.m.ListSubclass() inst.append(2) exec(classDefinition, self.m.__dict__) rebuild.updateInstance(inst) self.assertEqual(inst[0], 2) self.assertIs(type(inst), self.m.ListSubclass)