blob: ed19b7f3cfa7c67d23c3854f95725643d428880b [file] [log] [blame]
Luke Sneeringeracb6e3e2017-10-31 08:57:09 -07001# Copyright 2017 Google LLC
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -07002#
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
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080015from google.api_core import grpc_helpers
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070016from google.api_core import operations_v1
17from google.api_core import page_iterator
18from google.longrunning import operations_pb2
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080019from google.protobuf import empty_pb2
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070020
21
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080022def test_get_operation():
23 channel = grpc_helpers.ChannelStub()
24 client = operations_v1.OperationsClient(channel)
Christopher Wilcox6f4070d2018-11-29 11:02:52 -080025 channel.GetOperation.response = operations_pb2.Operation(name="meep")
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070026
Bu Sun Kim97cef4a2021-01-25 12:49:39 -070027 response = client.get_operation("name", metadata=[("header", "foo")])
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070028
Bu Sun Kim97cef4a2021-01-25 12:49:39 -070029 assert ("header", "foo") in channel.GetOperation.calls[0].metadata
30 assert ("x-goog-request-params", "name=name") in channel.GetOperation.calls[0].metadata
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080031 assert len(channel.GetOperation.requests) == 1
Christopher Wilcox6f4070d2018-11-29 11:02:52 -080032 assert channel.GetOperation.requests[0].name == "name"
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080033 assert response == channel.GetOperation.response
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070034
35
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080036def test_list_operations():
37 channel = grpc_helpers.ChannelStub()
38 client = operations_v1.OperationsClient(channel)
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070039 operations = [
Christopher Wilcox6f4070d2018-11-29 11:02:52 -080040 operations_pb2.Operation(name="1"),
41 operations_pb2.Operation(name="2"),
42 ]
43 list_response = operations_pb2.ListOperationsResponse(operations=operations)
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080044 channel.ListOperations.response = list_response
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070045
Bu Sun Kim97cef4a2021-01-25 12:49:39 -070046 response = client.list_operations("name", "filter", metadata=[("header", "foo")])
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070047
48 assert isinstance(response, page_iterator.Iterator)
49 assert list(response) == operations
50
Bu Sun Kim97cef4a2021-01-25 12:49:39 -070051 assert ("header", "foo") in channel.ListOperations.calls[0].metadata
52 assert ("x-goog-request-params", "name=name") in channel.ListOperations.calls[0].metadata
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080053 assert len(channel.ListOperations.requests) == 1
54 request = channel.ListOperations.requests[0]
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070055 assert isinstance(request, operations_pb2.ListOperationsRequest)
Christopher Wilcox6f4070d2018-11-29 11:02:52 -080056 assert request.name == "name"
57 assert request.filter == "filter"
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070058
59
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080060def test_delete_operation():
61 channel = grpc_helpers.ChannelStub()
62 client = operations_v1.OperationsClient(channel)
63 channel.DeleteOperation.response = empty_pb2.Empty()
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070064
Bu Sun Kim97cef4a2021-01-25 12:49:39 -070065 client.delete_operation("name", metadata=[("header", "foo")])
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070066
Bu Sun Kim97cef4a2021-01-25 12:49:39 -070067 assert ("header", "foo") in channel.DeleteOperation.calls[0].metadata
68 assert ("x-goog-request-params", "name=name") in channel.DeleteOperation.calls[0].metadata
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080069 assert len(channel.DeleteOperation.requests) == 1
Christopher Wilcox6f4070d2018-11-29 11:02:52 -080070 assert channel.DeleteOperation.requests[0].name == "name"
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070071
72
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080073def test_cancel_operation():
74 channel = grpc_helpers.ChannelStub()
75 client = operations_v1.OperationsClient(channel)
76 channel.CancelOperation.response = empty_pb2.Empty()
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070077
Bu Sun Kim97cef4a2021-01-25 12:49:39 -070078 client.cancel_operation("name", metadata=[("header", "foo")])
Jon Wayne Parrott77fb0f22017-10-18 12:52:35 -070079
Bu Sun Kim97cef4a2021-01-25 12:49:39 -070080 assert ("header", "foo") in channel.CancelOperation.calls[0].metadata
81 assert ("x-goog-request-params", "name=name") in channel.CancelOperation.calls[0].metadata
Jon Wayne Parrott37658c12018-01-05 14:54:49 -080082 assert len(channel.CancelOperation.requests) == 1
Christopher Wilcox6f4070d2018-11-29 11:02:52 -080083 assert channel.CancelOperation.requests[0].name == "name"