def test_route_to_url(self): base = controllers.HttpMixin() router = DictRouter({ 'test': { 'path': '/test', }, 'segment': { 'path': '/segment[/:part]', 'type': 'segment' } }) base.container = Mock() base.container.get.return_value = router assert base.url('test') == '/test' assert base.url('segment', part='test') == '/segment/test' assert base.url('test', host='test.com') == 'test.com/test' assert base.url('test', host='test.com', scheme='https://') == 'https://test.com/test'
def test_post_redirect_get(self): base = controllers.HttpMixin() router = DictRouter({'test': {'path': '/test'}}) environ = sample_environ(PATH_INFO='/', REQUEST_METHOD='POST') environ['wsgi.input'] = BufferedReader( BytesIO(b'post_var_one=test&post_var_two=blah')) base.request = Request.from_environ(environ, 'watson.http.sessions.Memory') base.container = Mock() base.container.get.return_value = router response = base.redirect('test') assert response.status_code == 303 assert base.redirect_vars == base.request.session['post_redirect_get'] base.clear_redirect_vars() assert not base.redirect_vars base.redirect('test', clear=True) assert not base.redirect_vars
def test_redirect(self): base = controllers.HttpMixin() router = DictRouter({ 'test': { 'path': '/test', }, 'segment': { 'path': '/segment[/:part]', 'type': 'segment', 'defaults': {'part': 'test'} } }) base.request = Request.from_environ(sample_environ()) base.container = Mock() base.container.get.return_value = router response = base.redirect('/test') assert response.headers['location'] == '/test' response = base.redirect('segment') assert response.headers['location'] == '/segment/test' assert response.status_code == 302
def test_invalid_response(self): with raises(TypeError): base = controllers.HttpMixin() base.response = 'test'
def test_set_event(self): with raises(TypeError): base = controllers.HttpMixin() base.event = 'test'
def test_get_event(self): base = controllers.HttpMixin() base.event = types.Event('test') assert isinstance(base.event, types.Event)
def test_request_response(self): base = controllers.HttpMixin() base.request = Request.from_environ(sample_environ()) assert isinstance(base.request, Request) assert isinstance(base.response, Response)