%PDF- %PDF-
Direktori : /lib/python3/dist-packages/twisted/test/__pycache__/ |
Current File : //lib/python3/dist-packages/twisted/test/__pycache__/test_twisted.cpython-312.pyc |
� Ϫ�f� � �^ � d Z ddlZddlmZ ddlmZ G d� d� Zd� Zd� Z G d � d e� Z y)zt Tests for miscellaneous behaviors of the top-level L{twisted} package (ie, for the code in C{twisted/__init__.py}. � N)� ModuleType)�TestCasec �( � e Zd ZdZd� Zd� Zd� Zd� Zy)�SetAsideModulez� L{SetAsideModule} is a context manager for temporarily removing a module from C{sys.modules}. @ivar name: The name of the module to remove. c � � || _ y �N)�name)�selfr s �;/usr/lib/python3/dist-packages/twisted/test/test_twisted.py�__init__zSetAsideModule.__init__ s � ��� � c � � t t j j � � D ��ci c]5 \ }}|| j k( s|j | j dz � r||��7 }}}|D ] }t j |= � |S c c}}w )z� Find the given module and all of its hierarchically inferior modules in C{sys.modules}, remove them from it, and return whatever was found. �.)�list�sys�modules�itemsr � startswith)r r � moduleName�moduler s r � _unimportzSetAsideModule._unimport s� � � )-�S�[�[�->�->�-@�(A� �$��V��d�i�i�'�:�+@�+@����S��+Q� ��� �� � � "�D����D�!� "���� s �:Bc �D � | j | j � | _ y r )r r r )r s r � __enter__zSetAsideModule.__enter__+ s � ��~�~�d�i�i�0��r c � � | j | j � t j j | j � y r )r r r r �update)r �excType�excValue� tracebacks r �__exit__zSetAsideModule.__exit__. s( � ����t�y�y�!������4�<�<�(r N)�__name__� __module__�__qualname__�__doc__r r r r � r r r r s � ����1�)r r c �` � i }t d| |� t j j |� y)a Take a mapping defining a package and turn it into real C{ModuleType} instances in C{sys.modules}. Consider these example:: a = {"foo": "bar"} b = {"twisted": {"__version__": "42.6"}} c = {"twisted": {"plugin": {"getPlugins": stub}}} C{_install(a)} will place an item into C{sys.modules} with C{"foo"} as the key and C{"bar" as the value. C{_install(b)} will place an item into C{sys.modules} with C{"twisted"} as the key. The value will be a new module object. The module will have a C{"__version__"} attribute with C{"42.6"} as the value. C{_install(c)} will place an item into C{sys.modules} with C{"twisted"} as the key. The value will be a new module object with a C{"plugin"} attribute. An item will also be placed into C{sys.modules} with the key C{"twisted.plugin"} which refers to that module object. That module will have an attribute C{"getPlugins"} with a value of C{stub}. @param modules: A mapping from names to definitions of modules. The names are native strings like C{"twisted"} or C{"unittest"}. Values may be arbitrary objects. Any value which is not a dictionary will be added to C{sys.modules} unmodified. Any dictionary value indicates the value is a new module and its items define the attributes of that module. The definition of this structure is recursive, so a value in the dictionary may be a dictionary to trigger another level of processing. @return: L{None} N)� _makePackagesr r r )r �results r �_installr( 3 s( � �D �F��$���(��K�K���v�r c �� � i }t |j � � D ]� \ }}| �Mt |t � r7t |� }|j j t |||� � |||<