Пример #1
0
    def test_exec_controller_ok(self):
        '''This test case ensures that requested route is executed - success scenario.'''

        global_headers = {"X-Custom-Header1": "header1",
                          "X-Custom-Header2": "header2"}

        def get(key):
            if key == "installed_middleware":
                return ["fantastico.middleware.tests.test_fantastico_app.MockedMiddleware"]
            
            if key == "global_response_headers":
                return global_headers
                
        self._settings_facade.get = get
                
        app_middleware = FantasticoApp(self._settings_facade_cls)
        
        response = Response()
        response.content_type = "text/html"
        response.text = "Hello world"
        
        self._controller.exec_logic = lambda request: response
        
        self.assertEqual([b"Hello world"], app_middleware(self._environ, Mock()))
        self.assertTrue(self._environ["test_wrapped_ok"])
        
        self.assertEqual(global_headers["X-Custom-Header1"], response.headers["X-Custom-Header1"])
        self.assertEqual(global_headers["X-Custom-Header2"], response.headers["X-Custom-Header2"])
Пример #2
0
    def display_test(self, request):
        '''This method handles **/dummy/route/loader/test route**. It is expected to receive a response with status code 400.
        We do this for being able to test rendering and also avoid false positive security scans messages.'''

        response = Response(status_code=400)

        if "text/html" in request.content_type:
            response.content_type = "application/html; charset=UTF-8"
        else:
            response.content_type = request.content_type or "application/html; charset=UTF-8"

        response.text = "Hello world."

        return response
Пример #3
0
    def display_test(self, request):
        '''This method handles **/dummy/route/loader/test route**. It is expected to receive a response with status code 400.
        We do this for being able to test rendering and also avoid false positive security scans messages.'''

        response = Response(status_code=400)

        if "text/html" in request.content_type:
            response.content_type = "application/html; charset=UTF-8"
        else:
            response.content_type = request.content_type or "application/html; charset=UTF-8"

        response.text = "Hello world."

        return response
Пример #4
0
    def test_mistmatch_content_headers(self):
        '''This test case makes sure an exception is raised whenever client browser does not accept response
        content type.'''
        
        self._settings_facade.get = Mock(return_value=["fantastico.middleware.tests.test_fantastico_app.MockedMiddleware"])        

        response = Response()
        response.content_type = "not supported"
        response.text = "Hello world"
        
        self._controller.exec_logic = lambda request: response
        
        app_middleware = FantasticoApp(self._settings_facade_cls)
        
        self.assertRaises(FantasticoContentTypeError, app_middleware, *[self._environ, Mock()])            
        self.assertTrue(self._environ["test_wrapped_ok"])
Пример #5
0
    def test_response_ok(self):
        '''Test case that ensures response object behaves as expected. If this pass it guarantees webob version does not
        break fantastico functionality.'''

        response = Response()

        self.assertEqual(200, response.status_code)
        self.assertEqual("text/html", response.content_type)

        response.charset = "utf8"
        self.assertEqual("utf8", response.charset)

        response.text = "test content"
        self.assertEqual(b"test content", response.body)

        response.body = b"test content"
        self.assertEqual(b"test content", response.body)

        response.status = 404
        self.assertEqual(404, response.status_code)

        response.content_type = "application/json"
        self.assertEqual("application/json", response.content_type)
Пример #6
0
    def test_response_ok(self):
        '''Test case that ensures response object behaves as expected. If this pass it guarantees webob version does not
        break fantastico functionality.'''
        
        response = Response()
        
        self.assertEqual(200, response.status_code)
        self.assertEqual("text/html", response.content_type)
        
        response.charset = "utf8"
        self.assertEqual("utf8", response.charset)
        
        response.text = "test content"
        self.assertEqual(b"test content", response.body)

        response.body = b"test content"
        self.assertEqual(b"test content", response.body)
        
        response.status = 404
        self.assertEqual(404, response.status_code)
        
        response.content_type = "application/json"
        self.assertEqual("application/json", response.content_type)
Пример #7
0
def test_write_unicode():
    res = Response()
    res.text = text_(b'La Pe\xc3\xb1a', 'utf-8')
    res.write(text_(b'a'))
    assert res.text, text_(b'La Pe\xc3\xb1aa' == 'utf-8')
Пример #8
0
def test_write_unicode():
    res = Response()
    res.text = text_(b"La Pe\xc3\xb1a", "utf-8")
    res.write(text_(b"a"))
    assert res.text, text_(b"La Pe\xc3\xb1aa" == "utf-8")
Пример #9
0
def test_text_set_no_default_body_encoding():
    res = Response()
    res.charset = None
    res.default_body_encoding = None
    with pytest.raises(AttributeError):
        res.text = text_("abc")
Пример #10
0
def test_text_set_no_charset():
    res = Response()
    res.charset = None
    res.text = text_("abc")
    assert res.text == "abc"
Пример #11
0
 def upload_file(self, request):
     response = Response()
     response.text = "Hello world."
     
     return response
Пример #12
0
 def say_hello(self, request):
     response = Response()
     response.text = "Hello world."
     
     return response
Пример #13
0
def test_write_unicode():
    res = Response()
    res.text = text_(b"La Pe\xc3\xb1a", "utf-8")
    res.write(text_(b"a"))
    assert res.text, text_(b"La Pe\xc3\xb1aa" == "utf-8")
Пример #14
0
def test_text_set_no_default_body_encoding():
    res = Response()
    res.charset = None
    res.default_body_encoding = None
    with pytest.raises(AttributeError):
        res.text = text_("abc")
Пример #15
0
def test_text_set_no_charset():
    res = Response()
    res.charset = None
    res.text = text_("abc")
    assert res.text == "abc"