Skip to content

Commit ad08619

Browse files
committed
feat: add google.api_core.gapic_v1.version_header
1 parent c38dd1e commit ad08619

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

google/api_core/gapic_v1/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from google.api_core.gapic_v1 import method
1919
from google.api_core.gapic_v1 import method_async
2020
from google.api_core.gapic_v1 import routing_header
21+
from google.api_core.gapic_v1 import version_header
2122

2223
__all__ = [
2324
"client_info",
@@ -26,4 +27,5 @@
2627
"method",
2728
"method_async",
2829
"routing_header",
30+
"version_header",
2931
]
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Copyright 2024 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
API_VERSION_METADATA_KEY = "x-goog-api-version"
16+
17+
18+
def to_grpc_metadata(version_identifier):
19+
"""Returns the gRPC metadata containing the API Version header for the given
20+
`version_identifier`.
21+
22+
Args:
23+
version_identifier (str): The version identifier to be sent via metadata.
24+
25+
Returns:
26+
Tuple(str, str): The gRPC metadata containing the API Version metadata key
27+
and value.
28+
"""
29+
return (API_VERSION_METADATA_KEY, version_identifier)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Copyright 2024 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
import pytest
16+
17+
try:
18+
import grpc # noqa: F401
19+
except ImportError:
20+
pytest.skip("No GRPC", allow_module_level=True)
21+
22+
from google.api_core.gapic_v1 import version_header
23+
24+
25+
@pytest.mark.parametrize("version_identifier", ["some_value", ""])
26+
def test_version_header_to_grpc_metadata(version_identifier):
27+
value = version_header.to_grpc_metadata(version_identifier)
28+
assert value == (version_header.API_VERSION_METADATA_KEY, version_identifier)

0 commit comments

Comments
 (0)