예제 #1
0
 def test_pipeline_exits(self):
     request = Request({})
     request2 = Request({})
     pipeline = Pipeline(request, request2).through([PipeTestOne, PipeTestBreak])
     self.assertTrue(request.one == 1)
     with self.assertRaises(AttributeError):
         self.assertTrue(request.two == 2)
예제 #2
0
 def test_pipeline_sets_attributes(self):
     request = Request({})
     request2 = Request({})
     pipeline = Pipeline(request,
                         request2).through([PipeTestOne, PipeTestTwo])
     self.assertTrue(request.one == 1)
     self.assertTrue(request.two == 2)
예제 #3
0
    def test_request_contains(self):
        request = Request(generate_wsgi(path="/test"))
        self.assertTrue(request.contains("/test"))

        request = Request(generate_wsgi(path="/test/user"))
        self.assertTrue(request.contains("/test/*"))

        request = Request(generate_wsgi(path="/test/admin/user"))
        self.assertTrue(request.contains("/test/*/user"))

        request = Request(generate_wsgi(path="/test/admin/user"))
        self.assertTrue(request.contains("*"))
예제 #4
0
    def test_gets_input_and_query_with_get_request(self):
        app = App()
        wsgi_environ = generate_wsgi()
        wsgi_environ['QUERY_STRING'] = 'param=1&param=2&param=3&foo=bar&q=yes'
        wsgi_environ['wsgi.input'] = {
            'param': 'hey',
            'foo': [9, 8, 7, 6],
            'bar': 'baz'
        }
        wsgi_environ['REQUEST_METHOD'] = 'GET'

        route_class = Route(wsgi_environ)
        request_class = Request(wsgi_environ)
        app.bind('Request', request_class)
        app.bind('Route', route_class)
        request = app.make('Request').load_app(app)

        self.assertEqual(request.query('param'), '1')
        self.assertEqual(request.all_query()['param'], ['1', '2', '3'])
        self.assertEqual(request.query('foo'), 'bar')
        self.assertEqual(request.query('param', multi=True), ['1', '2', '3'])
        self.assertEqual(request.query('not-exist', default=2), 2)
        self.assertEqual(request.query('not-exist', default=2, multi=True), 2)
        self.assertEqual(request.query('q', default='no'), 'yes')

        self.assertEqual(request.input('foo'), 'bar')
        self.assertEqual(request.input('param'), '1')
        self.assertEqual(request.input('q', default='no'), 'yes')
        self.assertEqual(request.input('bar', default='default'), 'default')
예제 #5
0
    def test_request_gets_all_headers(self):
        app = App()
        app.bind('Request', Request(wsgi_request))
        request = app.make('Request').load_app(app)

        request.header('TEST1', 'set_this_item')
        self.assertEqual(request.get_headers(), [('TEST1', 'set_this_item')])
예제 #6
0
    def test_gets_input_and_query_with_non_get_request(self):
        app = App()

        for method in ['POST', 'PUT', 'DELETE']:
            wsgi_environ = generate_wsgi()
            wsgi_environ['REQUEST_METHOD'] = method
            wsgi_environ[
                'QUERY_STRING'] = 'param=1&param=2&param=3&foo=bar&q=yes'
            wsgi_environ['wsgi.input'] = MockWsgiInput(
                '{"param": "hey", "foo": [9, 8, 7, 6], "bar": "baz"}')
            wsgi_environ['CONTENT_TYPE'] = 'application/json'
            route_class = Route(wsgi_environ)
            request_class = Request(wsgi_environ)
            app.bind('Request', request_class)
            app.bind('Route', route_class)
            request = app.make('Request').load_app(app)

            self.assertEqual(request.input('foo'), [9, 8, 7, 6])
            self.assertEqual(request.input('param'), 'hey')
            self.assertEqual(request.input('not-exist', default=2), 2)
            self.assertEqual(request.input('q', default='default'), 'default')
            self.assertEqual(request.input('bar', default='default'), 'baz')
            self.assertEqual(request.query('foo'), 'bar')
            self.assertEqual(request.query('param'), '1')
            self.assertEqual(request.query('param', multi=True),
                             ['1', '2', '3'])
            self.assertEqual(request.query('not-exist', default=2), 2)
            self.assertEqual(request.query('not-exist', default=2, multi=True),
                             2)
            self.assertEqual(request.query('q', default='default'), 'yes')
예제 #7
0
 def setUp(self):
     self.app = App()
     self.request = Request(wsgi_request.copy()).key(
         'NCTpkICMlTXie5te9nJniMj9aVbPM6lsjeq5iDZ0dqY=').load_app(self.app)
     self.app.bind('Request', self.request)
     self.response = Response(self.app)
     self.app.simple(Response)
 def setUp(self):
     self.request = Request(generate_wsgi())
     self.middleware = MaintenanceModeMiddleware(self.request)
     down_path = os.path.join(application.BASE_DIRECTORY, 'bootstrap/down')
     down = os.path.exists(down_path)
     if down:
         os.remove(down_path)
예제 #9
0
 def test_can_pass_variables(self):
     app = App()
     req = Request()
     app.bind('Request', req)
     obj = app.resolve(self._test_resolves_variables, 'test1', 'test2')
     self.assertEqual(obj[0], 'test1')
     self.assertEqual(obj[1], req)
     self.assertEqual(obj[2], 'test2')
예제 #10
0
    def test_request_sets_request_method(self):
        wsgi = generate_wsgi()
        wsgi['QUERY_STRING'] = '__method=PUT'
        request = Request(wsgi)

        assert request.has('__method')
        self.assertEqual(request.input('__method'), 'PUT')
        self.assertEqual(request.get_request_method(), 'PUT')
예제 #11
0
    def test_can_call_container_with_annotations_from_variable(self):
        request = Request(generate_wsgi())

        self.container.bind('Request', request)
        self.container.bind('Get', Get().route('url', None))

        self.assertEqual(self.container.resolve(ContainerTest().testboot),
                         self.container.make('Request'))
예제 #12
0
    def test_hidden_form_request_method_changes_request_method(self):
        app = App()
        wsgi_request['POST_DATA'] = '__method=PUT'
        request_class = Request(wsgi_request)

        app.bind('Request', request_class)
        request = app.make('Request').load_app(app)

        self.assertEqual(request.environ['REQUEST_METHOD'], 'PUT')
예제 #13
0
    def test_redirect_route(self):
        route = Redirect('/test1', '/test2')
        request = Request(generate_wsgi())
        route.load_request(request)
        request.load_app(App())

        route.get_response()
        self.assertTrue(request.is_status(302))
        self.assertEqual(request.redirect_url, '/test2')
예제 #14
0
    def test_redirect_can_use_301(self):
        request = Request(generate_wsgi())
        route = Redirect('/test1', '/test3', status=301)

        route.load_request(request)
        request.load_app(App())
        route.get_response()
        self.assertTrue(request.is_status(301))
        self.assertEqual(request.redirect_url, '/test3')
예제 #15
0
    def test_get_json_input(self):
        json_wsgi = wsgi_request
        json_wsgi['REQUEST_METHOD'] = 'POST'
        json_wsgi['CONTENT_TYPE'] = 'application/json'
        json_wsgi['POST_DATA'] = ''
        json_wsgi['wsgi.input'] = MockWsgiInput('{"id": 1, "test": "testing"}')
        Route(json_wsgi)
        request_obj = Request(json_wsgi)

        self.assertIsInstance(request_obj.request_variables, dict)
        self.assertEqual(request_obj.input('id'), 1)
        self.assertEqual(request_obj.input('test'), 'testing')
예제 #16
0
    def setUp(self):
        super().setUp()
        self.container = App()
        self.app = self.container
        self.app.bind('Container', self.app)
        view = View(self.container)
        self.request = Request(generate_wsgi()).load_environ(generate_wsgi())
        self.request.key(application.KEY)
        self.app.bind('Request', self.request)
        self.container.bind('View', view.render)
        self.container.bind('ViewClass', view)

        self.auth = Guard(self.app)
        self.auth.register_guard('web', WebGuard)
        self.auth.guard('web').register_driver('jwt', AuthJwtDriver)
        self.auth.set('web')

        self.app.swap(Auth, self.auth)
        self.request.load_app(self.app)
예제 #17
0
    def test_gets_input_with_all_request_methods(self):
        app = App()
        wsgi_request['QUERY_STRING'] = 'hey=test'
        request_class = Request(wsgi_request)
        app.bind('Request', request_class)
        request = app.make('Request').load_app(app)

        request.environ['REQUEST_METHOD'] = 'GET'
        self.assertEqual(request.input('hey'), 'test')

        request.environ['REQUEST_METHOD'] = 'POST'
        self.assertEqual(request.input('hey'), 'test')

        request.environ['REQUEST_METHOD'] = 'PUT'
        self.assertEqual(request.input('hey'), 'test')

        request.environ['REQUEST_METHOD'] = 'PATCH'
        self.assertEqual(request.input('hey'), 'test')

        request.environ['REQUEST_METHOD'] = 'DELETE'
        self.assertEqual(request.input('hey'), 'test')
예제 #18
0
    def test_list_as_root_payload_reset_between_requests(self):
        app = App()
        wsgi_environ = generate_wsgi()
        wsgi_environ['REQUEST_METHOD'] = 'POST'
        wsgi_environ['CONTENT_TYPE'] = 'application/json'

        route_class = Route()
        request_class = Request()
        app.bind('Request', request_class)
        app.bind('Route', route_class)
        route = app.make('Route')
        request = app.make('Request').load_app(app)

        wsgi_environ['wsgi.input'] = MockWsgiInput('[1, 2]')
        route.load_environ(wsgi_environ)
        request.load_environ(wsgi_environ)
        self.assertEqual(request.all(), [1, 2])

        wsgi_environ['wsgi.input'] = MockWsgiInput('{"key": "val"}')
        route.load_environ(wsgi_environ)
        request.load_environ(wsgi_environ)
        self.assertEqual(request.all(), {"key": "val"})
예제 #19
0
 def setUp(self):
     self.route = Route(generate_wsgi())
     self.request = Request(generate_wsgi())
예제 #20
0
 def setUp(self):
     self.app = App()
     self.view = View(self.app)
     self.request = Request(generate_wsgi()).load_app(self.app)
     self.provider = HelpersProvider()
     self.provider.load_app(self.app).boot(self.view, self.request)
예제 #21
0
    def test_instead_of_with_method(self):
        request = Request()

        InsteadOf(request, 'user')._return(MockUser)

        self.assertIsInstance(request.user(), MockUser)
예제 #22
0
    def test_instead_of_attribute(self):
        request = Request()

        InsteadOf(request, 'user')._return('awesome')

        self.assertEqual(request.user, 'awesome')
예제 #23
0
    def test_can_call_container_with_self_parameter(self):
        self.container.bind('Request', Request({}))
        self.container.bind('Get', Get())

        self.assertEqual(self.container.resolve(ContainerTest().boot),
                         self.container.make('Request'))
예제 #24
0
 def setUp(self):
     super().setUp()
     self.request = Request(generate_wsgi())
     self.middleware = SecureHeadersMiddleware(self.request)
     self.container.bind('Request', self.request.load_app(self.container))
     self.request = self.container.make('Request')
예제 #25
0
 def setUp(self):
     self.app = App()
     self.request = Request(wsgi_request)
     self.app.bind('Request', self.request)
예제 #26
0
 def setUp(self):
     self.request = Request(generate_wsgi({"PATH_INFO": "/test"}))
예제 #27
0
 def test_autoload_throws_exception_when_binding_key_that_already_exists(
         self):
     self.app.bind('Request', Request(None))
     with self.assertRaises(AutoloadContainerOverwrite):
         Autoload(self.app).load(['app/http/test_controllers'])
예제 #28
0
 def setUp(self):
     self.secret_key = 'pK1tLuZA8-upZGz-NiSCP_UVt-fxpxd796TaG6-dp8Y='
     self.request = Request(generate_wsgi()).key(self.secret_key)
예제 #29
0
from src.masonite.app import App
from src.masonite.request import Request
from src.masonite.testing import generate_wsgi
import unittest

REQUEST = Request({}).load_environ(generate_wsgi())


class MockMail:

    def __init__(self, request: Request):
        self.request = request


class TestApp(unittest.TestCase):

    def setUp(self):
        self.app = App()

    def test_app_binds(self):
        self.app.bind('test1', object)
        self.app.bind('test2', object)
        self.assertEqual(self.app.providers, {'test1': object, 'test2': object})

    def test_app_makes(self):
        self.app.bind('Request', REQUEST)
        self.assertEqual(self.app.make('Request').cookies, [])

    def test_app_makes_and_resolves(self):
        self.app.bind('Request', REQUEST)
        self.app.bind('MockMail', MockMail)
 def setUp(self):
     super().setUp()
     self.request = Request(generate_wsgi(path="/test"))