mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-24 10:35:46 +03:00
Factor out FakeResponse from test_oidc
This commit is contained in:
parent
7ea85302f3
commit
76469898ee
2 changed files with 28 additions and 16 deletions
|
@ -17,30 +17,15 @@ from urllib.parse import parse_qs, urlparse
|
|||
|
||||
from mock import Mock, patch
|
||||
|
||||
import attr
|
||||
import pymacaroons
|
||||
|
||||
from twisted.python.failure import Failure
|
||||
from twisted.web._newclient import ResponseDone
|
||||
|
||||
from synapse.handlers.oidc_handler import OidcError, OidcMappingProvider
|
||||
from synapse.handlers.sso import MappingException
|
||||
from synapse.types import UserID
|
||||
|
||||
from tests.test_utils import FakeResponse
|
||||
from tests.unittest import HomeserverTestCase, override_config
|
||||
|
||||
|
||||
@attr.s
|
||||
class FakeResponse:
|
||||
code = attr.ib()
|
||||
body = attr.ib()
|
||||
phrase = attr.ib()
|
||||
|
||||
def deliverBody(self, protocol):
|
||||
protocol.dataReceived(self.body)
|
||||
protocol.connectionLost(Failure(ResponseDone()))
|
||||
|
||||
|
||||
# These are a few constants that are used as config parameters in the tests.
|
||||
ISSUER = "https://issuer/"
|
||||
CLIENT_ID = "test-client-id"
|
||||
|
|
|
@ -22,6 +22,11 @@ import warnings
|
|||
from asyncio import Future
|
||||
from typing import Any, Awaitable, Callable, TypeVar
|
||||
|
||||
import attr
|
||||
|
||||
from twisted.python.failure import Failure
|
||||
from twisted.web.client import ResponseDone
|
||||
|
||||
TV = TypeVar("TV")
|
||||
|
||||
|
||||
|
@ -80,3 +85,25 @@ def setup_awaitable_errors() -> Callable[[], None]:
|
|||
sys.unraisablehook = unraisablehook # type: ignore
|
||||
|
||||
return cleanup
|
||||
|
||||
|
||||
@attr.s
|
||||
class FakeResponse:
|
||||
"""A fake twisted.web.IResponse object
|
||||
|
||||
there is a similar class at treq.test.test_response, but it lacks a `phrase`
|
||||
attribute, and didn't support deliverBody until recently.
|
||||
"""
|
||||
|
||||
# HTTP response code
|
||||
code = attr.ib(type=int)
|
||||
|
||||
# HTTP response phrase (eg b'OK' for a 200)
|
||||
phrase = attr.ib(type=bytes)
|
||||
|
||||
# body of the response
|
||||
body = attr.ib(type=bytes)
|
||||
|
||||
def deliverBody(self, protocol):
|
||||
protocol.dataReceived(self.body)
|
||||
protocol.connectionLost(Failure(ResponseDone()))
|
||||
|
|
Loading…
Reference in a new issue