Content-Length: 1042024 | pFad | http://github.com/richkadel/google-cloud-python/commit/ccd988695a40d5ad8965a553f6bc410358189b8a

5A Merge pull request #3057 from dhermes/move-connection-off-client · richkadel/google-cloud-python@ccd9886 · GitHub
Skip to content

Commit ccd9886

Browse files
authored
Merge pull request googleapis#3057 from dhermes/move-connection-off-client
Isolating Connection objects in _http modules (where relevant).
2 parents a751a9d + e048eb9 commit ccd9886

File tree

13 files changed

+115
-89
lines changed

13 files changed

+115
-89
lines changed

error_reporting/google/cloud/error_reporting/_gax.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def make_report_error_api(client):
3636
:returns: An Error Reporting API instance.
3737
"""
3838
channel = make_secure_channel(
39-
client._connection.credentials,
39+
client._credentials,
4040
DEFAULT_USER_AGENT,
4141
report_errors_service_client.ReportErrorsServiceClient.SERVICE_ADDRESS)
4242
gax_client = report_errors_service_client.ReportErrorsServiceClient(

error_reporting/unit_tests/test__gax.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ def test_make_report_error_api(self):
2828
from google.cloud.error_reporting import __version__
2929
from google.cloud.error_reporting._gax import make_report_error_api
3030

31-
client = mock.Mock()
31+
client = mock.Mock(
32+
_credentials=mock.sentinel.credentials,
33+
project='prahj-ekt',
34+
spec=['project', '_credentials'],
35+
)
3236

3337
# Mock out the constructor for the GAPIC client.
3438
ServiceClient = report_errors_service_client.ReportErrorsServiceClient

logging/google/cloud/logging/_gax.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ def make_gax_logging_api(client):
533533
:returns: A metrics API instance with the proper credentials.
534534
"""
535535
channel = make_secure_channel(
536-
client._connection.credentials, DEFAULT_USER_AGENT,
536+
client._credentials, DEFAULT_USER_AGENT,
537537
LoggingServiceV2Client.SERVICE_ADDRESS)
538538
generated = LoggingServiceV2Client(
539539
channel=channel, lib_name='gccl', lib_version=__version__)
@@ -550,7 +550,7 @@ def make_gax_metrics_api(client):
550550
:returns: A metrics API instance with the proper credentials.
551551
"""
552552
channel = make_secure_channel(
553-
client._connection.credentials, DEFAULT_USER_AGENT,
553+
client._credentials, DEFAULT_USER_AGENT,
554554
MetricsServiceV2Client.SERVICE_ADDRESS)
555555
generated = MetricsServiceV2Client(
556556
channel=channel, lib_name='gccl', lib_version=__version__)
@@ -567,7 +567,7 @@ def make_gax_sinks_api(client):
567567
:returns: A metrics API instance with the proper credentials.
568568
"""
569569
channel = make_secure_channel(
570-
client._connection.credentials, DEFAULT_USER_AGENT,
570+
client._credentials, DEFAULT_USER_AGENT,
571571
ConfigServiceV2Client.SERVICE_ADDRESS)
572572
generated = ConfigServiceV2Client(
573573
channel=channel, lib_name='gccl', lib_version=__version__)

logging/google/cloud/logging/handlers/transports/background_thread.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ class BackgroundThreadTransport(Transport):
152152
def __init__(self, client, name):
153153
http = copy.deepcopy(client._http)
154154
self.client = client.__class__(
155-
client.project, client._connection.credentials, http)
155+
client.project, client._credentials, http)
156156
logger = self.client.logger(name)
157157
self.worker = _Worker(logger)
158158

logging/unit_tests/test__gax.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,8 +1113,7 @@ def test_it(self):
11131113
from google.cloud.logging._gax import DEFAULT_USER_AGENT
11141114

11151115
creds = object()
1116-
conn = mock.Mock(credentials=creds, spec=['credentials'])
1117-
client = mock.Mock(_connection=conn, spec=['_connection'])
1116+
client = mock.Mock(_credentials=creds, spec=['_credentials'])
11181117
channels = []
11191118
channel_args = []
11201119
generated_api_kwargs = []
@@ -1167,8 +1166,7 @@ def test_it(self):
11671166
from google.cloud.logging._gax import DEFAULT_USER_AGENT
11681167

11691168
creds = object()
1170-
conn = mock.Mock(credentials=creds, spec=['credentials'])
1171-
client = mock.Mock(_connection=conn, spec=['_connection'])
1169+
client = mock.Mock(_credentials=creds, spec=['_credentials'])
11721170
channels = []
11731171
channel_args = []
11741172
generated_api_kwargs = []
@@ -1221,8 +1219,7 @@ def test_it(self):
12211219
from google.cloud.logging._gax import DEFAULT_USER_AGENT
12221220

12231221
creds = object()
1224-
conn = mock.Mock(credentials=creds, spec=['credentials'])
1225-
client = mock.Mock(_connection=conn, spec=['_connection'])
1222+
client = mock.Mock(_credentials=creds, spec=['_credentials'])
12261223
channels = []
12271224
channel_args = []
12281225
generated_api_kwargs = []

speech/google/cloud/speech/_gax.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class GAPICSpeechAPI(object):
4242
"""Manage calls through GAPIC wrappers to the Speech API."""
4343
def __init__(self, client=None):
4444
self._client = client
45-
credentials = self._client._connection.credentials
45+
credentials = self._client._credentials
4646
channel = make_secure_channel(
4747
credentials, DEFAULT_USER_AGENT,
4848
SpeechClient.SERVICE_ADDRESS)

speech/google/cloud/speech/_http.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class HTTPSpeechAPI(object):
5757
"""
5858
def __init__(self, client):
5959
self._client = client
60-
self._connection = client._connection
60+
self._connection = Connection(client)
6161

6262
def async_recognize(self, sample, language_code=None,
6363
max_alternatives=None, profanity_filter=None,

speech/google/cloud/speech/client.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from google.cloud.environment_vars import DISABLE_GRPC
2121

2222
from google.cloud.speech._gax import GAPICSpeechAPI
23-
from google.cloud.speech._http import Connection
2423
from google.cloud.speech._http import HTTPSpeechAPI
2524
from google.cloud.speech.sample import Sample
2625

@@ -58,8 +57,6 @@ class Client(BaseClient):
5857

5958
def __init__(self, credentials=None, http=None, use_gax=None):
6059
super(Client, self).__init__(credentials=credentials, http=http)
61-
self._connection = Connection(self)
62-
6360
# Save on the actual client class whether we use GAX or not.
6461
if use_gax is None:
6562
self._use_gax = _USE_GAX

speech/unit_tests/test__gax.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,16 @@ def test_constructor(self, mocked_stub, mocked_cls, mocked_channel):
4949
from google.cloud.speech import __version__
5050
from google.cloud.speech._gax import OPERATIONS_API_HOST
5151

52+
credentials = _make_credentials()
5253
mock_cnxn = mock.Mock(
53-
credentials=_make_credentials(),
54+
credentials=credentials,
5455
spec=['credentials'],
5556
)
56-
mock_client = mock.Mock(_connection=mock_cnxn, spec=['_connection'])
57+
mock_client = mock.Mock(
58+
_connection=mock_cnxn,
59+
_credentials=credentials,
60+
spec=['_connection', '_credentials'],
61+
)
5762

5863
speech_api = self._make_one(mock_client)
5964
self.assertIs(speech_api._client, mock_client)

speech/unit_tests/test_client.py

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,11 @@ def _make_one(self, *args, **kw):
8585
return self._get_target_class()(*args, **kw)
8686

8787
def test_ctor(self):
88-
from google.cloud.speech._http import Connection
89-
9088
creds = _make_credentials()
9189
http = object()
9290
client = self._make_one(credentials=creds, http=http)
93-
self.assertIsInstance(client._connection, Connection)
94-
self.assertTrue(client._connection.credentials is creds)
95-
self.assertTrue(client._connection.http is http)
91+
self.assertTrue(client._credentials is creds)
92+
self.assertTrue(client._http is http)
9693

9794
def test_ctor_use_gax_preset(self):
9895
creds = _make_credentials()
@@ -153,7 +150,9 @@ def test_sync_recognize_content_with_optional_params_no_gax(self):
153150
}
154151
credentials = _make_credentials()
155152
client = self._make_one(credentials=credentials, use_gax=False)
156-
client._connection = _Connection(RETURNED)
153+
speech_api = client.speech_api
154+
connection = _Connection(RETURNED)
155+
speech_api._connection = connection
157156

158157
encoding = speech.Encoding.FLAC
159158

@@ -165,8 +164,8 @@ def test_sync_recognize_content_with_optional_params_no_gax(self):
165164
profanity_filter=True,
166165
speech_context=self.HINTS)
167166

168-
self.assertEqual(len(client._connection._requested), 1)
169-
req = client._connection._requested[0]
167+
self.assertEqual(len(connection._requested), 1)
168+
req = connection._requested[0]
170169
self.assertEqual(len(req), 3)
171170
self.assertEqual(req['data'], REQUEST)
172171
self.assertEqual(req['method'], 'POST')
@@ -199,7 +198,9 @@ def test_sync_recognize_source_uri_without_optional_params_no_gax(self):
199198
}
200199
credentials = _make_credentials()
201200
client = self._make_one(credentials=credentials, use_gax=False)
202-
client._connection = _Connection(RETURNED)
201+
speech_api = client.speech_api
202+
connection = _Connection(RETURNED)
203+
speech_api._connection = connection
203204

204205
encoding = speech.Encoding.FLAC
205206

@@ -208,8 +209,8 @@ def test_sync_recognize_source_uri_without_optional_params_no_gax(self):
208209

209210
response = [i for i in sample.sync_recognize()]
210211

211-
self.assertEqual(len(client._connection._requested), 1)
212-
req = client._connection._requested[0]
212+
self.assertEqual(len(connection._requested), 1)
213+
req = connection._requested[0]
213214
self.assertEqual(len(req), 3)
214215
self.assertEqual(req['data'], REQUEST)
215216
self.assertEqual(req['method'], 'POST')
@@ -231,7 +232,8 @@ def test_sync_recognize_with_empty_results_no_gax(self):
231232

232233
credentials = _make_credentials()
233234
client = self._make_one(credentials=credentials, use_gax=False)
234-
client._connection = _Connection(SYNC_RECOGNIZE_EMPTY_RESPONSE)
235+
speech_api = client.speech_api
236+
speech_api._connection = _Connection(SYNC_RECOGNIZE_EMPTY_RESPONSE)
235237

236238
sample = client.sample(source_uri=self.AUDIO_SOURCE_URI,
237239
encoding=speech.Encoding.FLAC,
@@ -248,8 +250,7 @@ def test_sync_recognize_with_empty_results_gax(self):
248250

249251
credentials = _make_credentials()
250252
client = self._make_one(credentials=credentials, use_gax=True)
251-
client._connection = _Connection()
252-
client._connection.credentials = credentials
253+
client._credentials = credentials
253254

254255
channel_args = []
255256
channel_obj = object()
@@ -291,9 +292,7 @@ def test_sync_recognize_with_gax(self):
291292

292293
creds = _make_credentials()
293294
client = self._make_one(credentials=creds, use_gax=True)
294-
client._connection = _Connection()
295-
client._connection.credentials = creds
296-
client._speech_api = None
295+
client._credentials = creds
297296

298297
alternatives = [{
299298
'transcript': 'testing 1 2 3',
@@ -352,8 +351,7 @@ def test_async_supported_encodings(self):
352351
from google.cloud import speech
353352

354353
credentials = _make_credentials()
355-
client = self._make_one(credentials=credentials)
356-
client._connection = _Connection({})
354+
client = self._make_one(credentials=credentials, use_gax=True)
357355

358356
sample = client.sample(source_uri=self.AUDIO_SOURCE_URI,
359357
encoding=speech.Encoding.FLAC,
@@ -370,7 +368,8 @@ def test_async_recognize_no_gax(self):
370368

371369
credentials = _make_credentials()
372370
client = self._make_one(credentials=credentials, use_gax=False)
373-
client._connection = _Connection(RETURNED)
371+
speech_api = client.speech_api
372+
speech_api._connection = _Connection(RETURNED)
374373

375374
sample = client.sample(source_uri=self.AUDIO_SOURCE_URI,
376375
encoding=speech.Encoding.LINEAR16,
@@ -393,8 +392,7 @@ def test_async_recognize_with_gax(self):
393392
credentials = _make_credentials()
394393
client = self._make_one(credentials=credentials,
395394
use_gax=True)
396-
client._connection = _Connection()
397-
client._connection.credentials = credentials
395+
client._credentials = credentials
398396

399397
channel_args = []
400398
channel_obj = object()
@@ -434,7 +432,6 @@ def test_streaming_depends_on_gax(self):
434432

435433
credentials = _make_credentials()
436434
client = self._make_one(credentials=credentials, use_gax=False)
437-
client.connection = _Connection()
438435
sample = client.sample(content=self.AUDIO_CONTENT,
439436
encoding=speech.Encoding.LINEAR16,
440437
sample_rate=self.SAMPLE_RATE)
@@ -453,8 +450,7 @@ def test_streaming_closed_stream(self):
453450
stream = BytesIO(b'Some audio data...')
454451
credentials = _make_credentials()
455452
client = self._make_one(credentials=credentials)
456-
client.connection = _Connection()
457-
client.connection.credentials = credentials
453+
client._credentials = credentials
458454

459455
channel_args = []
460456
channel_obj = object()
@@ -495,8 +491,7 @@ def test_stream_recognize_interim_results(self):
495491
stream = BytesIO(b'Some audio data...')
496492
credentials = _make_credentials()
497493
client = self._make_one(credentials=credentials)
498-
client.connection = _Connection()
499-
client.connection.credentials = credentials
494+
client._credentials = credentials
500495

501496
alternatives = [{
502497
'transcript': 'testing streaming 1 2 3',
@@ -576,8 +571,7 @@ def test_stream_recognize(self):
576571
stream = BytesIO(b'Some audio data...')
577572
credentials = _make_credentials()
578573
client = self._make_one(credentials=credentials)
579-
client.connection = _Connection()
580-
client.connection.credentials = credentials
574+
client._credentials = credentials
581575

582576
alternatives = [{
583577
'transcript': 'testing streaming 1 2 3',
@@ -633,8 +627,7 @@ def test_stream_recognize_no_results(self):
633627
stream = BytesIO(b'Some audio data...')
634628
credentials = _make_credentials()
635629
client = self._make_one(credentials=credentials)
636-
client.connection = _Connection()
637-
client.connection.credentials = credentials
630+
client._credentials = credentials
638631

639632
responses = [_make_streaming_response()]
640633

@@ -670,8 +663,7 @@ def test_speech_api_with_gax(self):
670663

671664
creds = _make_credentials()
672665
client = self._make_one(credentials=creds, use_gax=True)
673-
client._connection = _Connection()
674-
client._connection.credentials = creds
666+
client._credentials = creds
675667

676668
channel_args = []
677669
channel_obj = object()

vision/google/cloud/vision/_http.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class _HTTPVisionAPI(object):
5555

5656
def __init__(self, client):
5757
self._client = client
58-
self._connection = client._connection
58+
self._connection = Connection(client)
5959

6060
def annotate(self, images):
6161
"""Annotate an image to discover it's attributes.

vision/google/cloud/vision/client.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
from google.cloud.vision._gax import _GAPICVisionAPI
2323
from google.cloud.vision._http import _HTTPVisionAPI
24-
from google.cloud.vision._http import Connection
2524
from google.cloud.vision.batch import Batch
2625
from google.cloud.vision.image import Image
2726

@@ -66,7 +65,6 @@ def __init__(self, project=None, credentials=None, http=None,
6665
use_gax=None):
6766
super(Client, self).__init__(
6867
project=project, credentials=credentials, http=http)
69-
self._connection = Connection(self)
7068
if use_gax is None:
7169
self._use_gax = _USE_GAX
7270
else:

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/richkadel/google-cloud-python/commit/ccd988695a40d5ad8965a553f6bc410358189b8a

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy