Skip to content

Commit dd6aea6

Browse files
author
iva-romanenko
committed
pass
1 parent d7d0142 commit dd6aea6

File tree

2 files changed

+99
-95
lines changed

2 files changed

+99
-95
lines changed

tests/test_endpoints_ovirride.py

Lines changed: 91 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,91 @@
1-
# from concurrent import futures
2-
# from unittest.mock import Mock, patch
3-
#
4-
# import grpc
5-
# import pytest
6-
#
7-
# from yandex.cloud.vpc.v1.network_service_pb2 import (
8-
# ListNetworksRequest,
9-
# ListNetworksResponse,
10-
# )
11-
# from yandex.cloud.vpc.v1.network_service_pb2_grpc import (
12-
# NetworkServiceStub,
13-
# add_NetworkServiceServicer_to_server,
14-
# )
15-
# from yandexcloud import SDK
16-
# from yandexcloud._channels import Channels
17-
#
18-
# INSECURE_SERVICE_PORT = "50051"
19-
# SECURE_SERVICE_PORT = "50052"
20-
# SERVICE_ADDR = "localhost"
21-
#
22-
#
23-
# class VPCServiceMock:
24-
#
25-
# def __init__(self):
26-
# self.Get = Mock()
27-
# self.Create = Mock()
28-
# self.Update = Mock()
29-
# self.Delete = Mock()
30-
# self.ListSubnets = Mock()
31-
# self.ListSecurityGroups = Mock()
32-
# self.ListRouteTables = Mock()
33-
# self.ListOperations = Mock()
34-
# self.Move = Mock()
35-
#
36-
# def List(self, _, context):
37-
# context.set_code(grpc.StatusCode.OK)
38-
# return ListNetworksResponse()
39-
#
40-
#
41-
# def grpc_server():
42-
# service = VPCServiceMock()
43-
# server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
44-
# server.add_insecure_port("[::]:" + INSECURE_SERVICE_PORT)
45-
# server.add_secure_port("[::]:" + SECURE_SERVICE_PORT, server_credentials=grpc.local_server_credentials())
46-
# add_NetworkServiceServicer_to_server(service, server)
47-
# server.start()
48-
# return server
49-
#
50-
#
51-
# @pytest.fixture
52-
# def mock_channel():
53-
# with patch.multiple(
54-
# Channels,
55-
# _get_creds=lambda self, endpoint: grpc.local_channel_credentials(),
56-
# _get_endpoints=lambda self: {"vpc": "", "iam": ""},
57-
# ) as channel_patch:
58-
# yield channel_patch
59-
#
60-
#
61-
# @pytest.mark.parametrize(["port", "insecure"], [(SECURE_SERVICE_PORT, False), (INSECURE_SERVICE_PORT, True)])
62-
# def test_we_can_override_endpoint_for_client(port: str, insecure: bool, mock_channel):
63-
# # given
64-
# grpc_server()
65-
# sdk = SDK()
66-
# # when
67-
# network_client = sdk.client(NetworkServiceStub, endpoint=f"localhost:{port}", insecure=insecure)
68-
# # then
69-
# assert isinstance(network_client.List(ListNetworksRequest(folder_id="test")), ListNetworksResponse)
70-
#
71-
#
72-
# @pytest.mark.parametrize(["port", "insecure"], [(SECURE_SERVICE_PORT, False), (INSECURE_SERVICE_PORT, True)])
73-
# def test_we_can_override_endpoint_using_config(port: str, insecure: bool, mock_channel):
74-
# # given
75-
# grpc_server()
76-
# sdk = SDK(endpoints={"vpc": f"localhost:{port}"})
77-
# # when
78-
# network_client = sdk.client(NetworkServiceStub, insecure=insecure)
79-
# # then
80-
# assert isinstance(network_client.List(ListNetworksRequest(folder_id="test")), ListNetworksResponse)
81-
#
82-
#
83-
# @pytest.mark.parametrize(["port", "insecure"], [(SECURE_SERVICE_PORT, False), (INSECURE_SERVICE_PORT, True)])
84-
# def test_override_by_client_is_prior(port: str, insecure: bool, mock_channel):
85-
# # given
86-
# grpc_server()
87-
# sdk = SDK(endpoints={"vpc": "nonlocal-123:12323"})
88-
# # when
89-
# network_client = sdk.client(NetworkServiceStub, endpoint=f"localhost:{port}", insecure=insecure)
90-
# # then
91-
# assert isinstance(network_client.List(ListNetworksRequest(folder_id="test")), ListNetworksResponse)
1+
from concurrent import futures
2+
from unittest.mock import Mock, patch
3+
4+
import grpc
5+
import pytest
6+
7+
from yandex.cloud.vpc.v1.network_service_pb2 import (
8+
ListNetworksRequest,
9+
ListNetworksResponse,
10+
)
11+
from yandex.cloud.vpc.v1.network_service_pb2_grpc import (
12+
NetworkServiceStub,
13+
add_NetworkServiceServicer_to_server,
14+
)
15+
from yandexcloud import SDK
16+
from yandexcloud._channels import Channels
17+
18+
INSECURE_SERVICE_PORT = "50051"
19+
SECURE_SERVICE_PORT = "50052"
20+
SERVICE_ADDR = "localhost"
21+
22+
23+
class VPCServiceMock:
24+
25+
def __init__(self):
26+
self.Get = Mock()
27+
self.Create = Mock()
28+
self.Update = Mock()
29+
self.Delete = Mock()
30+
self.ListSubnets = Mock()
31+
self.ListSecurityGroups = Mock()
32+
self.ListRouteTables = Mock()
33+
self.ListOperations = Mock()
34+
self.Move = Mock()
35+
36+
def List(self, _, context):
37+
context.set_code(grpc.StatusCode.OK)
38+
return ListNetworksResponse()
39+
40+
41+
def grpc_server():
42+
service = VPCServiceMock()
43+
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
44+
server.add_insecure_port("[::]:" + INSECURE_SERVICE_PORT)
45+
server.add_secure_port("[::]:" + SECURE_SERVICE_PORT, server_credentials=grpc.local_server_credentials())
46+
add_NetworkServiceServicer_to_server(service, server)
47+
server.start()
48+
return server
49+
50+
51+
@pytest.fixture
52+
def mock_channel():
53+
with patch.multiple(
54+
Channels,
55+
_get_creds=lambda self, endpoint: grpc.local_channel_credentials(),
56+
_get_endpoints=lambda self: {"vpc": "", "iam": ""},
57+
) as channel_patch:
58+
yield channel_patch
59+
60+
61+
@pytest.mark.parametrize(["port", "insecure"], [(SECURE_SERVICE_PORT, False), (INSECURE_SERVICE_PORT, True)])
62+
def test_we_can_override_endpoint_for_client(port: str, insecure: bool, mock_channel):
63+
# given
64+
grpc_server()
65+
sdk = SDK()
66+
# when
67+
network_client = sdk.client(NetworkServiceStub, endpoint=f"localhost:{port}", insecure=insecure)
68+
# then
69+
assert isinstance(network_client.List(ListNetworksRequest(folder_id="test")), ListNetworksResponse)
70+
71+
72+
@pytest.mark.parametrize(["port", "insecure"], [(SECURE_SERVICE_PORT, False), (INSECURE_SERVICE_PORT, True)])
73+
def test_we_can_override_endpoint_using_config(port: str, insecure: bool, mock_channel):
74+
# given
75+
grpc_server()
76+
sdk = SDK(endpoints={"vpc": f"localhost:{port}"})
77+
# when
78+
network_client = sdk.client(NetworkServiceStub, insecure=insecure)
79+
# then
80+
assert isinstance(network_client.List(ListNetworksRequest(folder_id="test")), ListNetworksResponse)
81+
82+
83+
@pytest.mark.parametrize(["port", "insecure"], [(SECURE_SERVICE_PORT, False), (INSECURE_SERVICE_PORT, True)])
84+
def test_override_by_client_is_prior(port: str, insecure: bool, mock_channel):
85+
# given
86+
grpc_server()
87+
sdk = SDK(endpoints={"vpc": "nonlocal-123:12323"})
88+
# when
89+
network_client = sdk.client(NetworkServiceStub, endpoint=f"localhost:{port}", insecure=insecure)
90+
# then
91+
assert isinstance(network_client.List(ListNetworksRequest(folder_id="test")), ListNetworksResponse)

tests/test_retry_policy.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@
1616
SERVICE_ADDR = "localhost"
1717

1818

19-
def side_effect_internal(_, context):
19+
def side_effect_internal(context):
2020
context.set_code(grpc.StatusCode.INTERNAL)
2121

2222

23-
def side_effect_unavailable(_, context):
23+
def side_effect_unavailable(context):
2424
context.set_code(grpc.StatusCode.UNAVAILABLE)
2525

26-
2726
class VPCServiceMock:
2827
def __init__(self, fn):
29-
self.Get = Mock(side_effect=fn)
28+
self.fn = fn
29+
# self.Get = Mock(side_effect=fn)
3030
self.Create = Mock()
3131
self.Update = Mock()
3232
self.Delete = Mock()
@@ -37,6 +37,10 @@ def __init__(self, fn):
3737
self.Move = Mock()
3838
self.List = Mock()
3939

40+
def Get(self, _, context):
41+
self.fn(context)
42+
return None
43+
4044

4145
@pytest.fixture
4246
def mock_channel():

0 commit comments

Comments
 (0)