Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,125 +22,126 @@ from google.protobuf import descriptor_pb2

{% set package_path = api.naming.module_namespace|join('.') + "." + api.naming.versioned_module_name %}
from {{package_path}}._compat import transcode_request
from {{package_path}} import _compat as universe
from {{package_path}}._compat import get_universe_domain, get_api_endpoint, get_default_mtls_endpoint
{% if has_auto_populated_fields %}
from {{package_path}}._compat import setup_request_id
{% endif %}

from google.auth.exceptions import MutualTLSChannelError
from google.api_core.universe import EmptyUniverseError


def test_get_universe_domain():
# When universe_domain is provided
assert (
universe.get_universe_domain("foo.com", default_universe="default.com")
get_universe_domain("foo.com", default_universe="default.com")
== "foo.com"
)
assert (
universe.get_universe_domain(" foo.com ", default_universe="default.com")
get_universe_domain(" foo.com ", default_universe="default.com")
== "foo.com"
)

# When universe_domain is None, falls back to default_universe
assert (
universe.get_universe_domain(None, default_universe="default.com")
get_universe_domain(None, default_universe="default.com")
== "default.com"
)

# When multiple potential universes are provided, resolves in order of preference
assert (
universe.get_universe_domain(
get_universe_domain(
"foo.com", "bar.com", default_universe="default.com"
)
== "foo.com"
)
assert (
universe.get_universe_domain(None, "bar.com", default_universe="default.com")
get_universe_domain(None, "bar.com", default_universe="default.com")
== "bar.com"
)
assert (
universe.get_universe_domain(None, None, default_universe="default.com")
get_universe_domain(None, None, default_universe="default.com")
== "default.com"
)

# EmptyUniverseError raised when resolved value is empty string
with pytest.raises(universe.EmptyUniverseError) as excinfo:
universe.get_universe_domain("", default_universe="default.com")
with pytest.raises(EmptyUniverseError) as excinfo:
get_universe_domain("", default_universe="default.com")
assert str(excinfo.value) == "Universe Domain cannot be an empty string."

with pytest.raises(universe.EmptyUniverseError) as excinfo:
universe.get_universe_domain(" ", default_universe="default.com")
with pytest.raises(EmptyUniverseError) as excinfo:
get_universe_domain(" ", default_universe="default.com")
assert str(excinfo.value) == "Universe Domain cannot be an empty string."

with pytest.raises(universe.EmptyUniverseError) as excinfo:
universe.get_universe_domain(None, "", default_universe="default.com")
with pytest.raises(EmptyUniverseError) as excinfo:
get_universe_domain(None, "", default_universe="default.com")
assert str(excinfo.value) == "Universe Domain cannot be an empty string."


def test_get_default_mtls_endpoint():
# Test valid API endpoints
assert (
universe.get_default_mtls_endpoint("foo.googleapis.com")
get_default_mtls_endpoint("foo.googleapis.com")
== "foo.mtls.googleapis.com"
)
assert (
universe.get_default_mtls_endpoint("foo.sandbox.googleapis.com")
get_default_mtls_endpoint("foo.sandbox.googleapis.com")
== "foo.mtls.sandbox.googleapis.com"
)
# Test case-insensitivity
assert (
universe.get_default_mtls_endpoint("foo.GoogleAPIs.com")
get_default_mtls_endpoint("foo.GoogleAPIs.com")
== "foo.mtls.googleapis.com"
)
assert (
universe.get_default_mtls_endpoint("foo.Sandbox.GoogleAPIs.com")
get_default_mtls_endpoint("foo.Sandbox.GoogleAPIs.com")
== "foo.mtls.sandbox.googleapis.com"
)

# Test valid API endpoints with schemes
assert (
universe.get_default_mtls_endpoint("https://foo.googleapis.com")
get_default_mtls_endpoint("https://foo.googleapis.com")
== "https://foo.mtls.googleapis.com"
)
assert (
universe.get_default_mtls_endpoint("http://foo.googleapis.com:8080/v1")
get_default_mtls_endpoint("http://foo.googleapis.com:8080/v1")
== "http://foo.mtls.googleapis.com:8080/v1"
)

# Test valid API endpoints with ports
assert (
universe.get_default_mtls_endpoint("foo.googleapis.com:443")
get_default_mtls_endpoint("foo.googleapis.com:443")
== "foo.mtls.googleapis.com:443"
)
assert (
universe.get_default_mtls_endpoint("foo.sandbox.googleapis.com:443")
get_default_mtls_endpoint("foo.sandbox.googleapis.com:443")
== "foo.mtls.sandbox.googleapis.com:443"
)
# Test case-insensitivity with ports
assert (
universe.get_default_mtls_endpoint("foo.GoogleAPIs.com:443")
get_default_mtls_endpoint("foo.GoogleAPIs.com:443")
== "foo.mtls.googleapis.com:443"
)
assert (
universe.get_default_mtls_endpoint("foo.Sandbox.GoogleAPIs.com:443")
get_default_mtls_endpoint("foo.Sandbox.GoogleAPIs.com:443")
== "foo.mtls.sandbox.googleapis.com:443"
)

# Test endpoints that shouldn't be converted
assert (
universe.get_default_mtls_endpoint("foo.mtls.googleapis.com")
get_default_mtls_endpoint("foo.mtls.googleapis.com")
== "foo.mtls.googleapis.com"
)
assert universe.get_default_mtls_endpoint("foo.com") == "foo.com"
assert universe.get_default_mtls_endpoint("foo.com:8080") == "foo.com:8080"
assert get_default_mtls_endpoint("foo.com") == "foo.com"
assert get_default_mtls_endpoint("foo.com:8080") == "foo.com:8080"

# Test empty/None endpoints
assert universe.get_default_mtls_endpoint("") == ""
assert universe.get_default_mtls_endpoint(None) is None
assert get_default_mtls_endpoint("") == ""
assert get_default_mtls_endpoint(None) is None

# Test endpoints without host
assert universe.get_default_mtls_endpoint("http://") == "http://"
assert universe.get_default_mtls_endpoint("https://") == "https://"
assert get_default_mtls_endpoint("http://") == "http://"
assert get_default_mtls_endpoint("https://") == "https://"


@pytest.mark.parametrize(
Expand Down Expand Up @@ -204,7 +205,7 @@ def test_get_api_endpoint(
):
if isinstance(expected, type) and issubclass(expected, Exception):
with pytest.raises(expected):
universe.get_api_endpoint(
get_api_endpoint(
api_override,
universe_domain,
default_universe,
Expand All @@ -214,7 +215,7 @@ def test_get_api_endpoint(
)
else:
assert (
universe.get_api_endpoint(
get_api_endpoint(
api_override,
universe_domain,
default_universe,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,122 +23,123 @@
from google.protobuf import descriptor_pb2

from google.cloud.asset_v1._compat import transcode_request
from google.cloud.asset_v1 import _compat as universe
from google.cloud.asset_v1._compat import get_universe_domain, get_api_endpoint, get_default_mtls_endpoint

from google.auth.exceptions import MutualTLSChannelError
from google.api_core.universe import EmptyUniverseError


def test_get_universe_domain():
# When universe_domain is provided
assert (
universe.get_universe_domain("foo.com", default_universe="default.com")
get_universe_domain("foo.com", default_universe="default.com")
== "foo.com"
)
assert (
universe.get_universe_domain(" foo.com ", default_universe="default.com")
get_universe_domain(" foo.com ", default_universe="default.com")
== "foo.com"
)

# When universe_domain is None, falls back to default_universe
assert (
universe.get_universe_domain(None, default_universe="default.com")
get_universe_domain(None, default_universe="default.com")
== "default.com"
)

# When multiple potential universes are provided, resolves in order of preference
assert (
universe.get_universe_domain(
get_universe_domain(
"foo.com", "bar.com", default_universe="default.com"
)
== "foo.com"
)
assert (
universe.get_universe_domain(None, "bar.com", default_universe="default.com")
get_universe_domain(None, "bar.com", default_universe="default.com")
== "bar.com"
)
assert (
universe.get_universe_domain(None, None, default_universe="default.com")
get_universe_domain(None, None, default_universe="default.com")
== "default.com"
)

# EmptyUniverseError raised when resolved value is empty string
with pytest.raises(universe.EmptyUniverseError) as excinfo:
universe.get_universe_domain("", default_universe="default.com")
with pytest.raises(EmptyUniverseError) as excinfo:
get_universe_domain("", default_universe="default.com")
assert str(excinfo.value) == "Universe Domain cannot be an empty string."

with pytest.raises(universe.EmptyUniverseError) as excinfo:
universe.get_universe_domain(" ", default_universe="default.com")
with pytest.raises(EmptyUniverseError) as excinfo:
get_universe_domain(" ", default_universe="default.com")
assert str(excinfo.value) == "Universe Domain cannot be an empty string."

with pytest.raises(universe.EmptyUniverseError) as excinfo:
universe.get_universe_domain(None, "", default_universe="default.com")
with pytest.raises(EmptyUniverseError) as excinfo:
get_universe_domain(None, "", default_universe="default.com")
assert str(excinfo.value) == "Universe Domain cannot be an empty string."


def test_get_default_mtls_endpoint():
# Test valid API endpoints
assert (
universe.get_default_mtls_endpoint("foo.googleapis.com")
get_default_mtls_endpoint("foo.googleapis.com")
== "foo.mtls.googleapis.com"
)
assert (
universe.get_default_mtls_endpoint("foo.sandbox.googleapis.com")
get_default_mtls_endpoint("foo.sandbox.googleapis.com")
== "foo.mtls.sandbox.googleapis.com"
)
# Test case-insensitivity
assert (
universe.get_default_mtls_endpoint("foo.GoogleAPIs.com")
get_default_mtls_endpoint("foo.GoogleAPIs.com")
== "foo.mtls.googleapis.com"
)
assert (
universe.get_default_mtls_endpoint("foo.Sandbox.GoogleAPIs.com")
get_default_mtls_endpoint("foo.Sandbox.GoogleAPIs.com")
== "foo.mtls.sandbox.googleapis.com"
)

# Test valid API endpoints with schemes
assert (
universe.get_default_mtls_endpoint("https://foo.googleapis.com")
get_default_mtls_endpoint("https://foo.googleapis.com")
== "https://foo.mtls.googleapis.com"
)
assert (
universe.get_default_mtls_endpoint("http://foo.googleapis.com:8080/v1")
get_default_mtls_endpoint("http://foo.googleapis.com:8080/v1")
== "http://foo.mtls.googleapis.com:8080/v1"
)

# Test valid API endpoints with ports
assert (
universe.get_default_mtls_endpoint("foo.googleapis.com:443")
get_default_mtls_endpoint("foo.googleapis.com:443")
== "foo.mtls.googleapis.com:443"
)
assert (
universe.get_default_mtls_endpoint("foo.sandbox.googleapis.com:443")
get_default_mtls_endpoint("foo.sandbox.googleapis.com:443")
== "foo.mtls.sandbox.googleapis.com:443"
)
# Test case-insensitivity with ports
assert (
universe.get_default_mtls_endpoint("foo.GoogleAPIs.com:443")
get_default_mtls_endpoint("foo.GoogleAPIs.com:443")
== "foo.mtls.googleapis.com:443"
)
assert (
universe.get_default_mtls_endpoint("foo.Sandbox.GoogleAPIs.com:443")
get_default_mtls_endpoint("foo.Sandbox.GoogleAPIs.com:443")
== "foo.mtls.sandbox.googleapis.com:443"
)

# Test endpoints that shouldn't be converted
assert (
universe.get_default_mtls_endpoint("foo.mtls.googleapis.com")
get_default_mtls_endpoint("foo.mtls.googleapis.com")
== "foo.mtls.googleapis.com"
)
assert universe.get_default_mtls_endpoint("foo.com") == "foo.com"
assert universe.get_default_mtls_endpoint("foo.com:8080") == "foo.com:8080"
assert get_default_mtls_endpoint("foo.com") == "foo.com"
assert get_default_mtls_endpoint("foo.com:8080") == "foo.com:8080"

# Test empty/None endpoints
assert universe.get_default_mtls_endpoint("") == ""
assert universe.get_default_mtls_endpoint(None) is None
assert get_default_mtls_endpoint("") == ""
assert get_default_mtls_endpoint(None) is None

# Test endpoints without host
assert universe.get_default_mtls_endpoint("http://") == "http://"
assert universe.get_default_mtls_endpoint("https://") == "https://"
assert get_default_mtls_endpoint("http://") == "http://"
assert get_default_mtls_endpoint("https://") == "https://"


@pytest.mark.parametrize(
Expand Down Expand Up @@ -202,7 +203,7 @@ def test_get_api_endpoint(
):
if isinstance(expected, type) and issubclass(expected, Exception):
with pytest.raises(expected):
universe.get_api_endpoint(
get_api_endpoint(
api_override,
universe_domain,
default_universe,
Expand All @@ -212,7 +213,7 @@ def test_get_api_endpoint(
)
else:
assert (
universe.get_api_endpoint(
get_api_endpoint(
api_override,
universe_domain,
default_universe,
Expand Down
Loading
Loading