def test_environ_builder_paths(): b = EnvironBuilder(path="/foo", base_url="http://example.com/") assert b.base_url == "http://example.com/" assert b.path == "/foo" assert b.script_root == "" assert b.host == "example.com" b = EnvironBuilder(path="/foo", base_url="http://example.com/bar") assert b.base_url == "http://example.com/bar/" assert b.path == "/foo" assert b.script_root == "/bar" assert b.host == "example.com" b.host = "localhost" assert b.base_url == "http://localhost/bar/" b.base_url = "http://localhost:8080/" assert b.host == "localhost:8080" assert b.server_name == "localhost" assert b.server_port == 8080 b.host = "foo.invalid" b.url_scheme = "https" b.script_root = "/test" env = b.get_environ() assert env["SERVER_NAME"] == "foo.invalid" assert env["SERVER_PORT"] == "443" assert env["SCRIPT_NAME"] == "/test" assert env["PATH_INFO"] == "/foo" assert env["HTTP_HOST"] == "foo.invalid" assert env["wsgi.url_scheme"] == "https" assert b.base_url == "https://foo.invalid/test/"
def test_environ_builder_paths(self): b = EnvironBuilder(path='/foo', base_url='http://example.com/') self.assert_strict_equal(b.base_url, 'http://example.com/') self.assert_strict_equal(b.path, '/foo') self.assert_strict_equal(b.script_root, '') self.assert_strict_equal(b.host, 'example.com') b = EnvironBuilder(path='/foo', base_url='http://example.com/bar') self.assert_strict_equal(b.base_url, 'http://example.com/bar/') self.assert_strict_equal(b.path, '/foo') self.assert_strict_equal(b.script_root, '/bar') self.assert_strict_equal(b.host, 'example.com') b.host = 'localhost' self.assert_strict_equal(b.base_url, 'http://localhost/bar/') b.base_url = 'http://localhost:8080/' self.assert_strict_equal(b.host, 'localhost:8080') self.assert_strict_equal(b.server_name, 'localhost') self.assert_strict_equal(b.server_port, 8080) b.host = 'foo.invalid' b.url_scheme = 'https' b.script_root = '/test' env = b.get_environ() self.assert_strict_equal(env['SERVER_NAME'], 'foo.invalid') self.assert_strict_equal(env['SERVER_PORT'], '443') self.assert_strict_equal(env['SCRIPT_NAME'], '/test') self.assert_strict_equal(env['PATH_INFO'], '/foo') self.assert_strict_equal(env['HTTP_HOST'], 'foo.invalid') self.assert_strict_equal(env['wsgi.url_scheme'], 'https') self.assert_strict_equal(b.base_url, 'https://foo.invalid/test/')
def test_environ_builder_paths(self): b = EnvironBuilder(path='/foo', base_url='http://example.com/') assert b.base_url == 'http://example.com/' assert b.path == '/foo' assert b.script_root == '' assert b.host == 'example.com' b = EnvironBuilder(path='/foo', base_url='http://example.com/bar') assert b.base_url == 'http://example.com/bar/' assert b.path == '/foo' assert b.script_root == '/bar' assert b.host == 'example.com' b.host = 'localhost' assert b.base_url == 'http://localhost/bar/' b.base_url = 'http://localhost:8080/' assert b.host == 'localhost:8080' assert b.server_name == 'localhost' assert b.server_port == 8080 b.host = 'foo.invalid' b.url_scheme = 'https' b.script_root = '/test' env = b.get_environ() assert env['SERVER_NAME'] == 'foo.invalid' assert env['SERVER_PORT'] == '443' assert env['SCRIPT_NAME'] == '/test' assert env['PATH_INFO'] == '/foo' assert env['HTTP_HOST'] == 'foo.invalid' assert env['wsgi.url_scheme'] == 'https' assert b.base_url == 'https://foo.invalid/test/'
def test_environ_builder_paths(): b = EnvironBuilder(path='/foo', base_url='http://example.com/') strict_eq(b.base_url, 'http://example.com/') strict_eq(b.path, '/foo') strict_eq(b.script_root, '') strict_eq(b.host, 'example.com') b = EnvironBuilder(path='/foo', base_url='http://example.com/bar') strict_eq(b.base_url, 'http://example.com/bar/') strict_eq(b.path, '/foo') strict_eq(b.script_root, '/bar') strict_eq(b.host, 'example.com') b.host = 'localhost' strict_eq(b.base_url, 'http://localhost/bar/') b.base_url = 'http://localhost:8080/' strict_eq(b.host, 'localhost:8080') strict_eq(b.server_name, 'localhost') strict_eq(b.server_port, 8080) b.host = 'foo.invalid' b.url_scheme = 'https' b.script_root = '/test' env = b.get_environ() strict_eq(env['SERVER_NAME'], 'foo.invalid') strict_eq(env['SERVER_PORT'], '443') strict_eq(env['SCRIPT_NAME'], '/test') strict_eq(env['PATH_INFO'], '/foo') strict_eq(env['HTTP_HOST'], 'foo.invalid') strict_eq(env['wsgi.url_scheme'], 'https') strict_eq(b.base_url, 'https://foo.invalid/test/')
def test_environ_builder_paths(): b = EnvironBuilder(path="/foo", base_url="http://example.com/") strict_eq(b.base_url, "http://example.com/") strict_eq(b.path, "/foo") strict_eq(b.script_root, "") strict_eq(b.host, "example.com") b = EnvironBuilder(path="/foo", base_url="http://example.com/bar") strict_eq(b.base_url, "http://example.com/bar/") strict_eq(b.path, "/foo") strict_eq(b.script_root, "/bar") strict_eq(b.host, "example.com") b.host = "localhost" strict_eq(b.base_url, "http://localhost/bar/") b.base_url = "http://localhost:8080/" strict_eq(b.host, "localhost:8080") strict_eq(b.server_name, "localhost") strict_eq(b.server_port, 8080) b.host = "foo.invalid" b.url_scheme = "https" b.script_root = "/test" env = b.get_environ() strict_eq(env["SERVER_NAME"], "foo.invalid") strict_eq(env["SERVER_PORT"], "443") strict_eq(env["SCRIPT_NAME"], "/test") strict_eq(env["PATH_INFO"], "/foo") strict_eq(env["HTTP_HOST"], "foo.invalid") strict_eq(env["wsgi.url_scheme"], "https") strict_eq(b.base_url, "https://foo.invalid/test/")
def open(self, *args, **kwargs): if self.context_preserved: _request_ctx_stack.pop() self.context_preserved = False kwargs.setdefault('environ_overrides', {}) \ ['flask._preserve_context'] = self.preserve_context as_tuple = kwargs.pop('as_tuple', False) buffered = kwargs.pop('buffered', False) follow_redirects = kwargs.pop('follow_redirects', False) builder = EnvironBuilder(*args, **kwargs) if self.application.config.get('SERVER_NAME'): server_name = self.application.config.get('SERVER_NAME') if ':' not in server_name: http_host, http_port = server_name, None else: http_host, http_port = server_name.split(':', 1) if builder.base_url == 'http://localhost/': # Default Generated Base URL if http_port != None: builder.host = http_host + ':' + http_port else: builder.host = http_host old = _request_ctx_stack.top try: return Client.open(self, builder, as_tuple=as_tuple, buffered=buffered, follow_redirects=follow_redirects) finally: self.context_preserved = _request_ctx_stack.top is not old