def test_domain_dispatched(): dispatcher = DomainDispatcherApplication(create_backend_app) backend_app = dispatcher.get_application( {"HTTP_HOST": "email.us-east1.amazonaws.com"} ) keys = list(backend_app.view_functions.keys()) keys[0].should.equal("EmailResponse.dispatch")
def test_domain_dispatched_with_service(): # If we pass a particular service, always return that. dispatcher = DomainDispatcherApplication(create_backend_app, service="s3") backend_app = dispatcher.get_application( {"HTTP_HOST": "s3.us-east1.amazonaws.com"}) keys = set(backend_app.view_functions.keys()) keys.should.contain("ResponseObject.key_or_control_response")
def run_s3_server(): # pragma: no cover mock_app = DomainDispatcherApplication(create_backend_app, 's3') mock_app.debug = False logger = logging.getLogger('werkzeug') logger.setLevel(logging.ERROR) [logger.removeHandler(h) for h in logger.handlers] run_simple(TEST_HOST, TEST_PORT, mock_app, threaded=True)
def test_domain_dispatched_with_service(): # If we pass a particular service, always return that. dispatcher = DomainDispatcherApplication(create_backend_app, service="s3") backend_app = dispatcher.get_application( {"HTTP_HOST": "s3.us-east1.amazonaws.com"}) keys = set(backend_app.view_functions.keys()) keys.should.contain('ResponseObject.key_response')
def mockup_s3_server(bucket, **kwargs): from moto.server import DomainDispatcherApplication, create_backend_app mock_app = DomainDispatcherApplication(create_backend_app, 's3') mock_app.debug = False with simple_http_server(WSGIRequestHandler, server_class=WSGIServer, app=mock_app, **kwargs) as server: url = 'http://localhost:%s' % server.server_address[1] # Create the bucket bucket_uri = '%s/%s' % (url, bucket) res = requests.put(bucket_uri) assert res.status_code == 200 yield server, bucket_uri
def e2e_test_context(): app = DomainDispatcherApplication(create_backend_app) aws_server = Server((FAKE_AWS_HOST, FAKE_AWS_PORT), app) aws_httpd = ThreadedHttpd(aws_server) aws_httpd.start() mesh_dir = TemporaryDirectory() forwarder_dir = TemporaryDirectory() app = FakeMeshApplication(mesh_dir.name, FAKE_MESH_SHARED_KEY.encode("utf-8"), FAKE_MESH_CLIENT_PASSWORD) mesh_server = Server((FAKE_MESH_HOST, FAKE_MESH_PORT), app) server_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH, cafile=CA_CERT_PATH) server_context.load_cert_chain(SERVER_CERT_PATH, SERVER_KEY_PATH) server_context.check_hostname = False server_context.verify_mode = ssl.CERT_REQUIRED ssl_adapter = BuiltinSSLAdapter(SERVER_CERT_PATH, SERVER_KEY_PATH, CA_CERT_PATH) ssl_adapter.context = server_context mesh_server.ssl_adapter = ssl_adapter mesh_httpd = ThreadedHttpd(mesh_server) mesh_httpd.start() yield E2ETestContext( fowarder_home=forwarder_dir.name, fake_aws_endpoint=f"http://{FAKE_AWS_HOST}:{FAKE_AWS_PORT}", ) mesh_httpd.stop() aws_httpd.stop() mesh_dir.cleanup() forwarder_dir.cleanup()
def __init__(self, port: int, host: str = "localhost") -> None: super().__init__(port, host) self.server = make_server( self.host, self.port, app=DomainDispatcherApplication(create_backend_app), threaded=True)
def run(self): application = DomainDispatcherApplication(create_backend_app_with_cors, service="s3") self.server = make_server( "localhost", 4566, application, ) self.server.serve_forever()
def _build_fake_s3(host, port): app = DomainDispatcherApplication(create_backend_app, "s3") server = make_server(host, port, app) return ThreadedServer(server)
def test_domain_dispatched(): dispatcher = DomainDispatcherApplication(create_backend_app) backend_app = dispatcher.get_application("email.us-east1.amazonaws.com") keys = list(backend_app.view_functions.keys()) keys[0].should.equal('EmailResponse.dispatch')
def test_domain_without_matches(): dispatcher = DomainDispatcherApplication(create_backend_app) dispatcher.get_application.when.called_with( "not-matching-anything.com").should.throw(RuntimeError)
def test_domain_dispatched_with_service(): # If we pass a particular service, always return that. dispatcher = DomainDispatcherApplication(create_backend_app, service="s3") backend_app = dispatcher.get_application("s3.us-east1.amazonaws.com") backend_app.view_functions.keys()[0].should.equal( 'ResponseObject.key_response')
def test_domain_dispatched(): dispatcher = DomainDispatcherApplication(create_backend_app) backend_app = dispatcher.get_application("email.us-east1.amazonaws.com") backend_app.view_functions.keys()[0].should.equal('EmailResponse.dispatch')
def _build_fake_ssm(): app = DomainDispatcherApplication(create_backend_app, "ssm") httpd = Server((FAKE_SSM_HOST, FAKE_SSM_PORT), app) return ThreadedHttpd(httpd)