mirror of
https://github.com/neondatabase/neon.git
synced 2025-12-27 16:12:56 +00:00
Summary: Added invariant checking for project name. Refactored ClientCredentials and TlsConfig.
* Added formatting invariant check for project name:
**\forall c \in project_name . c \in [alnum] U {'-'}.
** sni_data == <project_name>.<common_name>
* Added exhaustive tests for get_project_name.
* Refactored TlsConfig to contain common_name : Option<String>.
* Refactored ClientCredentials construction to construct project_name directly.
* Merged ProjectNameError into ClientCredsParseError.
* Tweaked proxy tests to accommodate refactored ClientCredentials construction semantics.
* [Pytests] Added project option argument to test_proxy_select_1.
* Removed project param from Api since now it's contained in creds.
* Refactored &Option<String> -> Option<&str>.
Co-authored-by: Dmitrii Ivanov <dima@neon.tech>.
19 lines
593 B
Python
19 lines
593 B
Python
import pytest
|
|
|
|
|
|
def test_proxy_select_1(static_proxy):
|
|
static_proxy.safe_psql("select 1;", options="project=generic-project-name")
|
|
|
|
|
|
# Pass extra options to the server.
|
|
#
|
|
# Currently, proxy eats the extra connection options, so this fails.
|
|
# See https://github.com/neondatabase/neon/issues/1287
|
|
@pytest.mark.xfail
|
|
def test_proxy_options(static_proxy):
|
|
with static_proxy.connect(options="-cproxytest.option=value") as conn:
|
|
with conn.cursor() as cur:
|
|
cur.execute("SHOW proxytest.option;")
|
|
value = cur.fetchall()[0][0]
|
|
assert value == 'value'
|