diff --git a/packages/google-cloud-language/google/cloud/language_v1/services/language_service/async_client.py b/packages/google-cloud-language/google/cloud/language_v1/services/language_service/async_client.py index 80cb550214ac..e12649a7ca34 100644 --- a/packages/google-cloud-language/google/cloud/language_v1/services/language_service/async_client.py +++ b/packages/google-cloud-language/google/cloud/language_v1/services/language_service/async_client.py @@ -16,7 +16,7 @@ from collections import OrderedDict import functools import re -from typing import Dict, Optional, Sequence, Tuple, Type, Union +from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union import pkg_resources from google.api_core.client_options import ClientOptions @@ -291,8 +291,7 @@ def sample_analyze_sentiment(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -326,7 +325,6 @@ async def analyze_entities( salience, mentions for each entity, and other properties. - .. code-block:: python from google.cloud import language_v1 @@ -402,8 +400,7 @@ def sample_analyze_entities(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -437,7 +434,6 @@ async def analyze_entity_sentiment( in the text and analyzes sentiment associated with each entity and its mentions. - .. code-block:: python from google.cloud import language_v1 @@ -516,8 +512,7 @@ def sample_analyze_entity_sentiment(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -550,7 +545,6 @@ async def analyze_syntax( boundaries and tokenization along with part of speech tags, dependency trees, and other properties. - .. code-block:: python from google.cloud import language_v1 @@ -626,8 +620,7 @@ def sample_analyze_syntax(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -726,8 +719,7 @@ def sample_classify_text(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -761,7 +753,6 @@ async def annotate_text( that analyzeSentiment, analyzeEntities, and analyzeSyntax provide in one call. - .. code-block:: python from google.cloud import language_v1 @@ -848,8 +839,7 @@ def sample_annotate_text(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), diff --git a/packages/google-cloud-language/google/cloud/language_v1/services/language_service/client.py b/packages/google-cloud-language/google/cloud/language_v1/services/language_service/client.py index a3a215e757f3..a5173c343465 100644 --- a/packages/google-cloud-language/google/cloud/language_v1/services/language_service/client.py +++ b/packages/google-cloud-language/google/cloud/language_v1/services/language_service/client.py @@ -16,7 +16,7 @@ from collections import OrderedDict import os import re -from typing import Dict, Optional, Sequence, Tuple, Type, Union +from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union import pkg_resources from google.api_core import client_options as client_options_lib @@ -520,7 +520,6 @@ def analyze_entities( salience, mentions for each entity, and other properties. - .. code-block:: python from google.cloud import language_v1 @@ -621,7 +620,6 @@ def analyze_entity_sentiment( in the text and analyzes sentiment associated with each entity and its mentions. - .. code-block:: python from google.cloud import language_v1 @@ -724,7 +722,6 @@ def analyze_syntax( boundaries and tokenization along with part of speech tags, dependency trees, and other properties. - .. code-block:: python from google.cloud import language_v1 @@ -915,7 +912,6 @@ def annotate_text( that analyzeSentiment, analyzeEntities, and analyzeSyntax provide in one call. - .. code-block:: python from google.cloud import language_v1 diff --git a/packages/google-cloud-language/google/cloud/language_v1/services/language_service/transports/base.py b/packages/google-cloud-language/google/cloud/language_v1/services/language_service/transports/base.py index 67326655e76e..29a95fade1c2 100644 --- a/packages/google-cloud-language/google/cloud/language_v1/services/language_service/transports/base.py +++ b/packages/google-cloud-language/google/cloud/language_v1/services/language_service/transports/base.py @@ -83,6 +83,7 @@ def __init__( always_use_jwt_access (Optional[bool]): Whether self signed JWT should be used for service account credentials. """ + # Save the hostname. Default to port 443 (HTTPS) if none is specified. if ":" not in host: host += ":443" @@ -130,8 +131,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -145,8 +145,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -160,8 +159,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -175,8 +173,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -190,8 +187,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -205,8 +201,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -296,5 +291,9 @@ def annotate_text( ]: raise NotImplementedError() + @property + def kind(self) -> str: + raise NotImplementedError() + __all__ = ("LanguageServiceTransport",) diff --git a/packages/google-cloud-language/google/cloud/language_v1/services/language_service/transports/grpc.py b/packages/google-cloud-language/google/cloud/language_v1/services/language_service/transports/grpc.py index 31f4bc9d3d9b..b7b421aff12c 100644 --- a/packages/google-cloud-language/google/cloud/language_v1/services/language_service/transports/grpc.py +++ b/packages/google-cloud-language/google/cloud/language_v1/services/language_service/transports/grpc.py @@ -412,5 +412,9 @@ def annotate_text( def close(self): self.grpc_channel.close() + @property + def kind(self) -> str: + return "grpc" + __all__ = ("LanguageServiceGrpcTransport",) diff --git a/packages/google-cloud-language/google/cloud/language_v1/types/language_service.py b/packages/google-cloud-language/google/cloud/language_v1/types/language_service.py index d26ac7a88b00..eed340e34f10 100644 --- a/packages/google-cloud-language/google/cloud/language_v1/types/language_service.py +++ b/packages/google-cloud-language/google/cloud/language_v1/types/language_service.py @@ -160,7 +160,7 @@ class Entity(proto.Message): The representative name for the entity. type_ (google.cloud.language_v1.types.Entity.Type): The entity type. - metadata (Sequence[google.cloud.language_v1.types.Entity.MetadataEntry]): + metadata (Mapping[str, str]): Metadata associated with the entity. For most entity types, the metadata is a Wikipedia URL diff --git a/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/async_client.py b/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/async_client.py index 6053c9752314..08757b5c5c46 100644 --- a/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/async_client.py +++ b/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/async_client.py @@ -16,7 +16,7 @@ from collections import OrderedDict import functools import re -from typing import Dict, Optional, Sequence, Tuple, Type, Union +from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union import pkg_resources from google.api_core.client_options import ClientOptions @@ -292,8 +292,7 @@ def sample_analyze_sentiment(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -327,7 +326,6 @@ async def analyze_entities( salience, mentions for each entity, and other properties. - .. code-block:: python from google.cloud import language_v1beta2 @@ -403,8 +401,7 @@ def sample_analyze_entities(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -438,7 +435,6 @@ async def analyze_entity_sentiment( in the text and analyzes sentiment associated with each entity and its mentions. - .. code-block:: python from google.cloud import language_v1beta2 @@ -517,8 +513,7 @@ def sample_analyze_entity_sentiment(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -551,7 +546,6 @@ async def analyze_syntax( boundaries and tokenization along with part-of-speech tags, dependency trees, and other properties. - .. code-block:: python from google.cloud import language_v1beta2 @@ -627,8 +621,7 @@ def sample_analyze_syntax(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -727,8 +720,7 @@ def sample_classify_text(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -762,7 +754,6 @@ async def annotate_text( sentiment, entity, and classification features in one call. - .. code-block:: python from google.cloud import language_v1beta2 @@ -849,8 +840,7 @@ def sample_annotate_text(): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), diff --git a/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/client.py b/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/client.py index d4e44895c464..ac1049b94c38 100644 --- a/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/client.py +++ b/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/client.py @@ -16,7 +16,7 @@ from collections import OrderedDict import os import re -from typing import Dict, Optional, Sequence, Tuple, Type, Union +from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union import pkg_resources from google.api_core import client_options as client_options_lib @@ -521,7 +521,6 @@ def analyze_entities( salience, mentions for each entity, and other properties. - .. code-block:: python from google.cloud import language_v1beta2 @@ -622,7 +621,6 @@ def analyze_entity_sentiment( in the text and analyzes sentiment associated with each entity and its mentions. - .. code-block:: python from google.cloud import language_v1beta2 @@ -725,7 +723,6 @@ def analyze_syntax( boundaries and tokenization along with part-of-speech tags, dependency trees, and other properties. - .. code-block:: python from google.cloud import language_v1beta2 @@ -916,7 +913,6 @@ def annotate_text( sentiment, entity, and classification features in one call. - .. code-block:: python from google.cloud import language_v1beta2 diff --git a/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/transports/base.py b/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/transports/base.py index 3c3de7103f84..278b65df3b5c 100644 --- a/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/transports/base.py +++ b/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/transports/base.py @@ -83,6 +83,7 @@ def __init__( always_use_jwt_access (Optional[bool]): Whether self signed JWT should be used for service account credentials. """ + # Save the hostname. Default to port 443 (HTTPS) if none is specified. if ":" not in host: host += ":443" @@ -130,8 +131,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -145,8 +145,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -160,8 +159,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -175,8 +173,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -190,8 +187,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -205,8 +201,7 @@ def _prep_wrapped_messages(self, client_info): maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( - core_exceptions.DeadlineExceeded, - core_exceptions.ServiceUnavailable, + core_exceptions.GoogleAPICallError, ), deadline=600.0, ), @@ -296,5 +291,9 @@ def annotate_text( ]: raise NotImplementedError() + @property + def kind(self) -> str: + raise NotImplementedError() + __all__ = ("LanguageServiceTransport",) diff --git a/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/transports/grpc.py b/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/transports/grpc.py index f5725f24f7dc..c6b1b540b740 100644 --- a/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/transports/grpc.py +++ b/packages/google-cloud-language/google/cloud/language_v1beta2/services/language_service/transports/grpc.py @@ -412,5 +412,9 @@ def annotate_text( def close(self): self.grpc_channel.close() + @property + def kind(self) -> str: + return "grpc" + __all__ = ("LanguageServiceGrpcTransport",) diff --git a/packages/google-cloud-language/google/cloud/language_v1beta2/types/language_service.py b/packages/google-cloud-language/google/cloud/language_v1beta2/types/language_service.py index fe526cb8c515..194002bc80e9 100644 --- a/packages/google-cloud-language/google/cloud/language_v1beta2/types/language_service.py +++ b/packages/google-cloud-language/google/cloud/language_v1beta2/types/language_service.py @@ -160,7 +160,7 @@ class Entity(proto.Message): The representative name for the entity. type_ (google.cloud.language_v1beta2.types.Entity.Type): The entity type. - metadata (Sequence[google.cloud.language_v1beta2.types.Entity.MetadataEntry]): + metadata (Mapping[str, str]): Metadata associated with the entity. For most entity types, the metadata is a Wikipedia URL diff --git a/packages/google-cloud-language/tests/unit/gapic/language_v1/test_language_service.py b/packages/google-cloud-language/tests/unit/gapic/language_v1/test_language_service.py index d5ac0ac67de2..08447420e426 100644 --- a/packages/google-cloud-language/tests/unit/gapic/language_v1/test_language_service.py +++ b/packages/google-cloud-language/tests/unit/gapic/language_v1/test_language_service.py @@ -86,24 +86,26 @@ def test__get_default_mtls_endpoint(): @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - LanguageServiceClient, - LanguageServiceAsyncClient, + (LanguageServiceClient, "grpc"), + (LanguageServiceAsyncClient, "grpc_asyncio"), ], ) -def test_language_service_client_from_service_account_info(client_class): +def test_language_service_client_from_service_account_info( + client_class, transport_name +): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_info" ) as factory: factory.return_value = creds info = {"valid": True} - client = client_class.from_service_account_info(info) + client = client_class.from_service_account_info(info, transport=transport_name) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "language.googleapis.com:443" + assert client.transport._host == ("language.googleapis.com:443") @pytest.mark.parametrize( @@ -132,27 +134,33 @@ def test_language_service_client_service_account_always_use_jwt( @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - LanguageServiceClient, - LanguageServiceAsyncClient, + (LanguageServiceClient, "grpc"), + (LanguageServiceAsyncClient, "grpc_asyncio"), ], ) -def test_language_service_client_from_service_account_file(client_class): +def test_language_service_client_from_service_account_file( + client_class, transport_name +): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_file" ) as factory: factory.return_value = creds - client = client_class.from_service_account_file("dummy/file/path.json") + client = client_class.from_service_account_file( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - client = client_class.from_service_account_json("dummy/file/path.json") + client = client_class.from_service_account_json( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "language.googleapis.com:443" + assert client.transport._host == ("language.googleapis.com:443") def test_language_service_client_get_transport_class(): @@ -1921,6 +1929,19 @@ def test_transport_adc(transport_class): adc.assert_called_once() +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + ], +) +def test_transport_kind(transport_name): + transport = LanguageServiceClient.get_transport_class(transport_name)( + credentials=ga_credentials.AnonymousCredentials(), + ) + assert transport.kind == transport_name + + def test_transport_grpc_default(): # A client should use the gRPC transport by default. client = LanguageServiceClient( @@ -1968,6 +1989,14 @@ def test_language_service_base_transport(): with pytest.raises(NotImplementedError): transport.close() + # Catch all for all remaining methods and properties + remainder = [ + "kind", + ] + for r in remainder: + with pytest.raises(NotImplementedError): + getattr(transport, r)() + def test_language_service_base_transport_with_credentials_file(): # Instantiate the base transport with a credentials file @@ -2125,24 +2154,40 @@ def test_language_service_grpc_transport_client_cert_source_for_mtls(transport_c ) -def test_language_service_host_no_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_language_service_host_no_port(transport_name): client = LanguageServiceClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="language.googleapis.com" ), + transport=transport_name, ) - assert client.transport._host == "language.googleapis.com:443" + assert client.transport._host == ("language.googleapis.com:443") -def test_language_service_host_with_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_language_service_host_with_port(transport_name): client = LanguageServiceClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="language.googleapis.com:8000" ), + transport=transport_name, ) - assert client.transport._host == "language.googleapis.com:8000" + assert client.transport._host == ("language.googleapis.com:8000") def test_language_service_grpc_transport_channel(): diff --git a/packages/google-cloud-language/tests/unit/gapic/language_v1beta2/test_language_service.py b/packages/google-cloud-language/tests/unit/gapic/language_v1beta2/test_language_service.py index 89f8432abfd0..6603d4a39b28 100644 --- a/packages/google-cloud-language/tests/unit/gapic/language_v1beta2/test_language_service.py +++ b/packages/google-cloud-language/tests/unit/gapic/language_v1beta2/test_language_service.py @@ -88,24 +88,26 @@ def test__get_default_mtls_endpoint(): @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - LanguageServiceClient, - LanguageServiceAsyncClient, + (LanguageServiceClient, "grpc"), + (LanguageServiceAsyncClient, "grpc_asyncio"), ], ) -def test_language_service_client_from_service_account_info(client_class): +def test_language_service_client_from_service_account_info( + client_class, transport_name +): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_info" ) as factory: factory.return_value = creds info = {"valid": True} - client = client_class.from_service_account_info(info) + client = client_class.from_service_account_info(info, transport=transport_name) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "language.googleapis.com:443" + assert client.transport._host == ("language.googleapis.com:443") @pytest.mark.parametrize( @@ -134,27 +136,33 @@ def test_language_service_client_service_account_always_use_jwt( @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - LanguageServiceClient, - LanguageServiceAsyncClient, + (LanguageServiceClient, "grpc"), + (LanguageServiceAsyncClient, "grpc_asyncio"), ], ) -def test_language_service_client_from_service_account_file(client_class): +def test_language_service_client_from_service_account_file( + client_class, transport_name +): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_file" ) as factory: factory.return_value = creds - client = client_class.from_service_account_file("dummy/file/path.json") + client = client_class.from_service_account_file( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - client = client_class.from_service_account_json("dummy/file/path.json") + client = client_class.from_service_account_json( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "language.googleapis.com:443" + assert client.transport._host == ("language.googleapis.com:443") def test_language_service_client_get_transport_class(): @@ -1923,6 +1931,19 @@ def test_transport_adc(transport_class): adc.assert_called_once() +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + ], +) +def test_transport_kind(transport_name): + transport = LanguageServiceClient.get_transport_class(transport_name)( + credentials=ga_credentials.AnonymousCredentials(), + ) + assert transport.kind == transport_name + + def test_transport_grpc_default(): # A client should use the gRPC transport by default. client = LanguageServiceClient( @@ -1970,6 +1991,14 @@ def test_language_service_base_transport(): with pytest.raises(NotImplementedError): transport.close() + # Catch all for all remaining methods and properties + remainder = [ + "kind", + ] + for r in remainder: + with pytest.raises(NotImplementedError): + getattr(transport, r)() + def test_language_service_base_transport_with_credentials_file(): # Instantiate the base transport with a credentials file @@ -2127,24 +2156,40 @@ def test_language_service_grpc_transport_client_cert_source_for_mtls(transport_c ) -def test_language_service_host_no_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_language_service_host_no_port(transport_name): client = LanguageServiceClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="language.googleapis.com" ), + transport=transport_name, ) - assert client.transport._host == "language.googleapis.com:443" + assert client.transport._host == ("language.googleapis.com:443") -def test_language_service_host_with_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_language_service_host_with_port(transport_name): client = LanguageServiceClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="language.googleapis.com:8000" ), + transport=transport_name, ) - assert client.transport._host == "language.googleapis.com:8000" + assert client.transport._host == ("language.googleapis.com:8000") def test_language_service_grpc_transport_channel():