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)
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')])
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)
def test_request_loads_app(self): app = App() app.bind('Request', self.request) app.make('Request').load_app(app) self.assertEqual(self.request.app(), app) self.assertEqual(app.make('Request').app(), app)
def test_request_redirection(self): app = App() app.bind('Request', self.request) app.bind('WebRoutes', [ Get('/test/url', 'TestController@show').name('test.url'), Get('/test/url/@id', 'TestController@testing').name('test.id'), Get('/test/url/object', TestController.show).name('test.object') ]) request = app.make('Request').load_app(app) self.assertEqual( request.redirect('/test/url/@id', { 'id': 1 }).redirect_url, '/test/url/1') request.redirect_url = None self.assertEqual( request.redirect(name='test.url').redirect_url, '/test/url') request.redirect_url = None self.assertEqual( request.redirect(name='test.id', params={ 'id': 1 }).redirect_url, '/test/url/1') request.redirect_url = None self.assertEqual( request.redirect(controller='TestController@show').redirect_url, '/test/url') request.redirect_url = None self.assertEqual( request.redirect(controller=TestController.show).redirect_url, '/test/url/object') request.redirect_url = None self.assertEqual( request.redirect('some/url').redirect_url, '/some/url')
class TestMailgunDriver: def setup_method(self): self.app = App() self.app.bind('Container', self.app) self.app.bind('Test', object) self.app.bind('MailConfig', mail) self.app.bind('MailSmtpDriver', MailDriver) self.app.bind('MailMailgunDriver', Mailgun) self.app.bind('View', View(self.app)) def test_mailgun_driver(self): user = UserMock user.email = '*****@*****.**' assert MailManager(self.app).driver('mailgun').to(user).to_address == '*****@*****.**' def test_mail_renders_template(self): assert 'MasoniteTesting' in MailManager(self.app).driver('mailgun').to( '*****@*****.**').template('mail/welcome', {'to': 'MasoniteTesting'}).message_body def test_mail_sends_with_queue_and_without_queue(self): if env('RUN_MAIL'): assert MailManager(self.app).driver('mailgun').to('*****@*****.**').send('test queue') == None assert MailManager(self.app).driver('mailgun').queue().to('*****@*****.**').send('test queue') == None
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) assert request.get_status_code() == '500 Internal Server Error'
def test_maintenance_mode_middleware_is_not_down(self): app = App() app.bind('Request', self.request) app.bind('StatusCode', '200 OK') request = app.make('Request').load_app(app) self.middleware.before() assert request.get_status_code() == '200 OK'
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)
def test_throws_exception_if_too_many_bindings(): app = App() REQUEST.cookies = ['hey'] app.bind('Request', REQUEST) app.bind('Route', Get().route('test/', None)) with pytest.raises(TypeError, message="should raise error"): app.resolve(functest)
def test_cache_sets_times(): container = App() container.bind('CacheConfig', cache) container.bind('CacheDiskDriver', CacheDiskDriver) container.bind('CacheManager', CacheManager(container)) container.bind('Application', container) container.bind('Cache', container.make('CacheManager').driver('disk')) cache_driver = container.make('Cache') cache_driver.store_for('key_for_1_minute', 'value', 1, 'minute') cache_driver.store_for('key_for_1_hour', 'value', 1, 'hour') cache_driver.store_for('key_for_1_day', 'value', 1, 'day') cache_driver.store_for('key_for_1_month', 'value', 1, 'month') cache_driver.store_for('key_for_1_year', 'value', 1, 'year') assert cache_driver.is_valid('key_for_1_minute') assert cache_driver.is_valid('key_for_1_hour') assert cache_driver.is_valid('key_for_1_day') assert cache_driver.is_valid('key_for_1_month') assert cache_driver.is_valid('key_for_1_year') assert cache_driver.get('key_for_1_minute') == 'value' assert cache_driver.get('key_for_1_hour') == 'value' assert cache_driver.get('key_for_1_day') == 'value' assert cache_driver.get('key_for_1_month') == 'value' assert cache_driver.get('key_for_1_year') == 'value' for cache_file in glob.glob('bootstrap/cache/key*'): os.remove(cache_file)
def test_can_call_container_with_annotation_with_self_parameter(): app = App() app.bind('Request', Request) app.bind('Get', Get().route('url', None)) assert app.resolve(ContainerTest().testboot) == app.make('Request')
def test_request_loads_app(): app = App() app.bind('Request', REQUEST) app.make('Request').load_app(app) assert REQUEST.app() == app assert app.make('Request').app() == app
class TestResponseProvider: def setup_method(self): self.app = App() self.provider = StartResponseProvider() self.app.bind('Response', None) self.app.bind('Request', Request(generate_wsgi()).load_app(self.app)) self.app.bind('Headers', []) self.provider.app = self.app def test_response_boot_throws_response_exception(self): with pytest.raises(ResponseError): self.provider.boot(self.app.make('Request'), self.app.make('Response'), self.app.make('Headers')) def test_response_encodes_header_response_to_bytes(self): encoded_bytes = bytes('test', 'utf-8') self.app.bind('Response', 'test') self.app.bind('StatusCode', '200 OK') self.provider.boot(self.app.make('Request'), self.app.make('Response'), self.app.make('Headers')) assert self.app.make('Headers')[0] == ("Content-Length", str(len(encoded_bytes))) def test_redirect_sets_redirection_headers(self): self.app.make('Request').redirect_url = '/redirection' self.provider.boot(self.app.make('Request'), self.app.make('Response'), self.app.make('Headers')) assert self.app.make('StatusCode') == '302 OK' assert ('Location', '/redirection') in self.app.make('Headers')
def test_can_call_container_with_self_parameter(): app = App() app.bind('Request', object) app.bind('Get', object) assert app.resolve(ContainerTest().boot) == app.make('Request')
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) assert request._get_status_code_by_value('500 Internal Server Error') == 500
def test_app_binds(): app = App() app.bind('test1', object) app.bind('test2', object) assert app.providers == {'test1': object, 'test2': object}
def test_request_loads_app(self): app = App() app.bind('Request', self.request) app.make('Request').load_app(app) assert self.request.app() == app assert app.make('Request').app() == app
def test_request_sets_status_code(): app = App() app.bind('Request', REQUEST) request = app.make('Request').load_app(app) request.status('200 OK') assert request.get_status_code() == '200 OK'
def create_container(self): container = App() container.bind('WSGI', object) container.bind('Application', application) container.bind('Providers', providers) """ |-------------------------------------------------------------------------- | Bind all service providers |-------------------------------------------------------------------------- | | Let's register everything into the Service Container. Once everything is | in the container we can run through all the boot methods. For reasons | some providers don't need to execute with every request and should | only run once when the server is started. Providers will be ran | once if the wsgi attribute on a provider is False. | """ for provider in container.make('Providers').PROVIDERS: provider().load_app(container).register() for provider in container.make('Providers').PROVIDERS: located_provider = provider().load_app(container) if located_provider.wsgi is False: container.resolve(located_provider.boot) """ |-------------------------------------------------------------------------- | Startup the Service Container |-------------------------------------------------------------------------- | | Instantiate the Service Container so we can bind classes into it and | bind the environ variable that is created by the WSGI server into | the container. | """ container.bind('Environ', generate_wsgi()) """ |-------------------------------------------------------------------------- | Execute All Service Providers |-------------------------------------------------------------------------- | | Run all service provider boot methods if the wsgi attribute is true. | """ for provider in container.make('Providers').PROVIDERS: located_provider = provider().load_app(container) container.bind('Response', 'test') if located_provider.wsgi is True: container.resolve(located_provider.boot) self.container = container return self
def test_redirect_compiles_url_with_http(): app = App() app.bind('Request', REQUEST) request = app.make('Request').load_app(app) request.redirect('http://google.com') assert request.compile_route_to_url() == 'http://google.com'
def test_redirect_compiles_url_with_multiple_parameters(): app = App() app.bind('Request', REQUEST) request = app.make('Request').load_app(app) request.redirect('test/@id/@test').send({'id': '1', 'test': 'user'}) assert request.compile_route_to_url() == '/test/1/user'
def test_redirect_compiles_url(): app = App() app.bind('Request', REQUEST) request = app.make('Request').load_app(app) request.redirect('test/url') assert request.compile_route_to_url() == '/test/url'
def test_redirect_compiles_url_with_trailing_slash(): app = App() app.bind('Request', REQUEST) request = app.make('Request').load_app(app) request.redirect('test/url/here/') assert request.compile_route_to_url() == '/test/url/here/'
def test_request_sets_status_code(self): app = App() app.bind('Request', self.request) app.bind('StatusCode', '404 Not Found') request = app.make('Request').load_app(app) request.status('200 OK') assert request.get_status_code() == '200 OK'
class TestFrameworkHooks: def setup_method(self): self.app = App() self.app.bind('SentryExceptionHook', SentryExceptionHookMock()) self.app.bind('HookHandler', Hook(self.app)) def test_exception_handler(self): assert self.app.make('HookHandler').fire('*ExceptionHook') is None
def test_request_gets_correct_header(self): app = App() app.bind('Request', self.request) request = app.make('Request').load_app(app) assert request.header('UPGRADE_INSECURE_REQUESTS') == '1' assert request.header('RAW_URI') == '/' assert request.header('NOT_IN') == None
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" assert request.compile_route_to_url(route) == 'http://google.com'
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/' assert request.compile_route_to_url(route) == '/test/url/here/'
def test_redirect_compiles_url(self): app = App() app.bind('Request', self.request) request = app.make('Request').load_app(app) route = '/test/url' assert request.compile_route_to_url(route) == '/test/url'
from bootstrap.start import app from config import application, providers """ |-------------------------------------------------------------------------- | Instantiate Container And Perform Important Bindings |-------------------------------------------------------------------------- | | Some Service providers need important bindings like the WSGI application | and the application configuration file before they boot. | """ container = App() container.bind('WSGI', app) container.bind('Application', application) container.bind('Container', container) container.bind('ProvidersConfig', providers) container.bind('Providers', []) container.bind('WSGIProviders', []) """ |-------------------------------------------------------------------------- | Bind all service providers |-------------------------------------------------------------------------- | | Let's register everything into the Service Container. Once everything is | in the container we can run through all the boot methods. For reasons | some providers don't need to execute with every request and should