| Server IP : 123.56.80.60 / Your IP : 216.73.216.78 Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586 User : SYSTEM ( 0) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files/python/Lib/site-packages/gevent/tests/ |
Upload File : |
# -*- coding: utf-8 -*-
"""
Tests that on Python 2, if the futures backport of 'thread' is already
imported before we monkey-patch, it gets patched too.
"""
import unittest
try:
import thread
import _thread
HAS_BOTH = True
except ImportError:
HAS_BOTH = False
class TestMonkey(unittest.TestCase):
@unittest.skipUnless(HAS_BOTH, "Python 2, needs future backport installed")
def test_patches_both(self):
thread_lt = thread.LockType
_thread_lt = _thread.LockType
self.assertIs(thread_lt, _thread_lt)
from gevent.thread import LockType as gLockType
self.assertIsNot(thread_lt, gLockType)
import gevent.monkey
gevent.monkey.patch_all()
thread_lt2 = thread.LockType
_thread_lt2 = _thread.LockType
self.assertIs(thread_lt2, gLockType)
self.assertIs(_thread_lt2, gLockType)
self.assertIs(thread_lt2, _thread_lt2)
self.assertIsNot(thread_lt2, thread_lt)
# Retrieving the original on the old name still works
orig_locktype = gevent.monkey.get_original('thread', 'LockType')
self.assertIs(orig_locktype, thread_lt)
# And the new name
orig__locktype = gevent.monkey.get_original('_thread', 'LockType')
self.assertIs(orig__locktype, thread_lt)
if __name__ == '__main__':
unittest.main()