def test_as_context_mgr_wo_error(self): from google.cloud.storage.client import Client url = "http://example.com/api" expected_response = _make_response( content=_THREE_PART_MIME_RESPONSE, headers={"content-type": 'multipart/mixed; boundary="DEADBEEF="'}, ) http = _make_requests_session([expected_response]) project = "PROJECT" credentials = _make_credentials() client = Client(project=project, credentials=credentials) client._http_internal = http self.assertEqual(list(client._batch_stack), []) target1 = _MockObject() target2 = _MockObject() target3 = _MockObject() with self._make_one(client) as batch: self.assertEqual(list(client._batch_stack), [batch]) batch._make_request("POST", url, { "foo": 1, "bar": 2 }, target_object=target1) batch._make_request("PATCH", url, {"bar": 3}, target_object=target2) batch._make_request("DELETE", url, target_object=target3) self.assertEqual(list(client._batch_stack), []) self.assertEqual(len(batch._requests), 3) self.assertEqual(batch._requests[0][0], "POST") self.assertEqual(batch._requests[1][0], "PATCH") self.assertEqual(batch._requests[2][0], "DELETE") self.assertEqual(batch._target_objects, [target1, target2, target3]) self.assertEqual(target1._properties, {"foo": 1, "bar": 2}) self.assertEqual(target2._properties, {"foo": 1, "bar": 3}) self.assertEqual(target3._properties, b"")
def test_as_context_mgr_wo_error(self): from google.cloud.storage.client import Client URL = 'http://example.com/api' expected = _Response() expected['content-type'] = 'multipart/mixed; boundary="DEADBEEF="' http = _HTTP((expected, _THREE_PART_MIME_RESPONSE)) project = 'PROJECT' credentials = _make_credentials() client = Client(project=project, credentials=credentials) client._http_internal = http self.assertEqual(list(client._batch_stack), []) target1 = _MockObject() target2 = _MockObject() target3 = _MockObject() with self._make_one(client) as batch: self.assertEqual(list(client._batch_stack), [batch]) batch._make_request('POST', URL, { 'foo': 1, 'bar': 2 }, target_object=target1) batch._make_request('PATCH', URL, {'bar': 3}, target_object=target2) batch._make_request('DELETE', URL, target_object=target3) self.assertEqual(list(client._batch_stack), []) self.assertEqual(len(batch._requests), 3) self.assertEqual(batch._requests[0][0], 'POST') self.assertEqual(batch._requests[1][0], 'PATCH') self.assertEqual(batch._requests[2][0], 'DELETE') self.assertEqual(batch._target_objects, [target1, target2, target3]) self.assertEqual(target1._properties, {'foo': 1, 'bar': 2}) self.assertEqual(target2._properties, {'foo': 1, 'bar': 3}) self.assertEqual(target3._properties, '')