More tests.

This commit is contained in:
Andrey Rakhmatullin 2026-07-17 18:57:26 +05:00
parent 05c085ba9a
commit 2924449fa1
1 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,50 @@
from __future__ import annotations
import sys
import pytest
from scrapy.utils.reactorless import (
ReactorImportHook,
install_reactor_import_hook,
uninstall_reactor_import_hook,
)
class TestReactorImportHook:
def test_install_and_uninstall(self) -> None:
hook = install_reactor_import_hook()
try:
assert isinstance(hook, ReactorImportHook)
assert sys.meta_path[0] is hook
finally:
uninstall_reactor_import_hook(hook)
assert hook not in sys.meta_path
def test_uninstall_twice(self) -> None:
hook = install_reactor_import_hook()
uninstall_reactor_import_hook(hook)
uninstall_reactor_import_hook(hook)
assert hook not in sys.meta_path
def test_uninstall_not_installed(self) -> None:
uninstall_reactor_import_hook(ReactorImportHook())
def test_uninstall_only_removes_the_given_hook(self) -> None:
hook1 = install_reactor_import_hook()
hook2 = install_reactor_import_hook()
try:
uninstall_reactor_import_hook(hook1)
assert hook1 not in sys.meta_path
assert hook2 in sys.meta_path
finally:
uninstall_reactor_import_hook(hook1)
uninstall_reactor_import_hook(hook2)
def test_find_spec(self) -> None:
hook = ReactorImportHook()
with pytest.raises(
ImportError, match=r"Import of twisted\.internet\.reactor is forbidden"
):
hook.find_spec("twisted.internet.reactor", None)
assert hook.find_spec("twisted.internet.defer", None) is None