コード例 #1
0
    def test_request_sets_int_status_code(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        request.status(500)
        self.assertEqual(request.get_status_code(), '500 Internal Server Error')
コード例 #2
0
 def setUp(self):
     self.app = App()
     self.app.bind('Container', self.app)
     self.app.bind('MailBaseDriver', MyTestDriver)
     viewClass = View(self.app)
     self.app.bind('ViewClass', viewClass)
     self.app.bind('View', viewClass.render)
コード例 #3
0
    def test_request_gets_int_status(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        request.status(500)
        self.assertEqual(request.get_status(), 500)
コード例 #4
0
ファイル: test_container.py プロジェクト: zedreamer/masonite
    def test_strict_container_raises_exception(self):
        self.app = App(strict=True)

        self.app.bind('Request', object)

        with self.assertRaises(StrictContainerException):
            self.app.bind('Request', object)
コード例 #5
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)
コード例 #6
0
    def test_is_status_code(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        request.status(500)
        self.assertEqual(request.is_status(500), True)
コード例 #7
0
    def test_request_sets_invalid_int_status_code(self):
        with self.assertRaises(InvalidHTTPStatusCode):
            app = App()
            app.bind('Request', self.request)
            request = app.make('Request').load_app(app)

            request.status(600)
コード例 #8
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')])
コード例 #9
0
    def test_can_get_code_by_value(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        request.status(500)
        self.assertEqual(request._get_status_code_by_value('500 Internal Server Error'), 500)
コード例 #10
0
    def test_redirect_compiles_url_with_http(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        route = "http://google.com"

        self.assertEqual(request.compile_route_to_url(route), 'http://google.com')
コード例 #11
0
    def test_redirect_compiles_url(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        route = '/test/url'

        self.assertEqual(request.compile_route_to_url(route), '/test/url')
コード例 #12
0
 def setUp(self):
     self.app = App()
     self.app.bind('Container', self.app)
     self.app.bind('Test', object)
     # self.app.bind('StorageConfig', storage)
     self.app.bind('UploadDiskDriver', UploadDiskDriver)
     self.app.bind('UploadS3Driver', UploadS3Driver)
     self.app.bind('UploadManager', UploadManager)
コード例 #13
0
    def test_redirect_compiles_url_with_trailing_slash(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        route = 'test/url/here/'

        self.assertEqual(request.compile_route_to_url(route), '/test/url/here/')
コード例 #14
0
 def setUp(self):
     self.app = App()
     self.app.bind('Container', self.app)
     self.app.bind('Test', object)
     self.app.bind('MailMailgunDriver', MailgunTestDriver)
     viewClass = View(self.app)
     self.app.bind('ViewClass', viewClass)
     self.app.bind('View', viewClass.render)
コード例 #15
0
class TestFrameworkHooks(unittest.TestCase):
    def setUp(self):
        self.app = App()
        self.app.bind('SentryExceptionHook', SentryExceptionHookMock())
        self.app.bind('HookHandler', Hook(self.app))

    def test_exception_handler(self):
        self.assertIsNone(self.app.make('HookHandler').fire('*ExceptionHook'))
コード例 #16
0
ファイル: test_container.py プロジェクト: zedreamer/masonite
 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')
コード例 #17
0
    def setUp(self):
        self.app = App()
        self.app = self.app.bind('Container', self.app)

        self.app.bind('Test', object)
        self.app.bind('MailSmtpDriver', object)
        self.app.bind('View', View(self.app).render)
        self.app.bind('ViewClass', View(self.app))
コード例 #18
0
    def test_can_get_list_as_root_payload_getting_all(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        request._set_standardized_request_variables([{"key": "val"}, {"item2": "val2"}])

        self.assertIsInstance(request.all(), list)
        self.assertEqual(request.all()[0]['key'], 'val')
コード例 #19
0
    def test_request_gets_correct_header(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        self.assertEqual(request.header('HTTP_UPGRADE_INSECURE_REQUESTS'), '1')
        self.assertEqual(request.header('RAW_URI'), '/')
        self.assertEqual(request.header('NOT_IN'), '')
        self.assertFalse('text/html' in request.header('NOT_IN'))
コード例 #20
0
    def test_request_cant_set_multiple_headers(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        request.header('TEST', 'test_this')
        request.header('TEST', 'test_that')

        self.assertEqual(request.header('TEST'), 'test_that')
コード例 #21
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')
コード例 #22
0
    def test_upload_manager_raises_driver_not_found_error(self):
        self.app = App()
        self.app.bind('Test', object)
        # self.app.bind('StorageConfig', storage)

        with self.assertRaises(DriverNotFound):
            self.assertIsNone(self.app.bind(
                'UploadManager',
                UploadManager(self.app).load_container(self.app)
            ))
コード例 #23
0
    def setUp(self):
        self.app = App()
        self.app = self.app.bind('Container', self.app)

        self.app.bind('Test', object)
        viewClass = View(self.app)
        self.app.bind('ViewClass', viewClass)
        self.app.bind('View', viewClass.render)
        self.app.bind('MailLogDriver', MailLogDriver)
        self.app.bind('MailTerminalDriver', MailTerminalDriver)
コード例 #24
0
    def test_can_get_list_as_root_payload(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        request._set_standardized_request_variables([{"key": "val"}, {"item2": "val2"}])

        self.assertEqual(request.input(0)['key'], 'val')
        self.assertEqual(request.input('0')['key'], 'val')
        self.assertEqual(request.input(2), False)
コード例 #25
0
    def test_request_compiles_custom_route_compiler(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        route = 'test/@id:signed'
        params = {
            'id': '1',
        }
        self.assertEqual(request.compile_route_to_url(route, params), '/test/1')
コード例 #26
0
 def setUp(self):
     self.app = App()
     self.app.bind('Application', self.app)
     self.app.bind('CacheDiskDriver', CacheDiskDriver)
     self.app.bind('CacheRedisDriver', CacheRedisDriver)
     self.app.bind('CacheManager', CacheManager(self.app))
     self.app.bind('Cache', self.app.make('CacheManager').driver('disk'))
     self.drivers = ['disk']
     if os.environ.get('REDIS_CACHE_DRIVER'):
         self.drivers.append('redis')
コード例 #27
0
    def test_request_sets_correct_header(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        request.header('TEST', 'set_this')
        self.assertEqual(request.header('TEST'), 'set_this')

        request.header('TEST', 'set_this', http_prefix=True)
        self.assertEqual(request.header('HTTP_TEST'), 'set_this')
コード例 #28
0
    def test_redirect_compiles_url_with_multiple_parameters(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        route = 'test/@id/@test'
        params = {
            'id': '1',
            'test': 'user',
        }
        self.assertEqual(request.compile_route_to_url(route, params), '/test/1/user')
コード例 #29
0
ファイル: test_autoload.py プロジェクト: zedreamer/masonite
class TestAutoload(unittest.TestCase):
    def setUp(self):
        self.app = App()

    def test_autoload_loads_from_directories(self):
        Autoload(self.app).load(['app/http/controllers'])
        self.assertTrue(self.app.make('TestController'))

    def test_autoload_instantiates_classes(self):
        classes = Autoload().collect(['app/http/test_controllers'],
                                     instantiate=True)
        self.assertTrue(classes['TestController'].test)

    def test_autoload_loads_from_directories_with_trailing_slash_raises_exception(
            self):
        with self.assertRaises(InvalidAutoloadPath):
            Autoload(self.app).load(['app/http/controllers/'])

    def test_autoload_raises_exception_with_no_container(self):
        with self.assertRaises(ContainerError):
            Autoload().load(['app/http/controllers/'])

    def test_autoload_collects_classes(self):
        classes = Autoload().collect(['app/http/controllers'])
        self.assertIn('TestController', classes)
        self.assertNotIn('Command', classes)

    def test_autoload_loads_from_directories_and_instances(self):
        classes = Autoload().instances(['app/http/controllers'], object)
        self.assertIn('TestController', classes)
        self.assertNotIn('Command', classes)

    def test_autoload_loads_not_only_from_app_from_directories_and_instances(
            self):
        classes = Autoload().instances(['app/http/controllers'],
                                       object,
                                       only_app=False)
        self.assertIn('TestController', classes)

    def test_autoload_does_not_instantiate_classes(self):
        classes = Autoload().instances(['app/http/controllers'], object)
        with self.assertRaises(AttributeError):
            self.assertTrue(classes['TestController'].test, True)

    def test_collects_classes_only_in_app(self):
        classes = Autoload().collect(['app/http/controllers'], only_app=False)
        self.assertIn('TestController', classes)

    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'])
コード例 #30
0
    def test_can_get_list_as_root_payload_as_dot_notation(self):
        app = App()
        app.bind('Request', self.request)
        request = app.make('Request').load_app(app)

        request._set_standardized_request_variables([{"key": "val"}, {"item2": "val2", "inner": {"value": "innervalue"}}, {"item3": [1,2]}])

        self.assertEqual(request.input('0.key'), 'val')
        self.assertEqual(request.input('1.item2'), 'val2')
        self.assertEqual(request.input('1.inner.value'), 'innervalue')
        self.assertEqual(request.input('2.item3.0'), 1)
        self.assertEqual(request.input('3.item3'), False)