Skip to content

Commit b4d7da9

Browse files
committed
Demonstrate pytest with docker
1 parent aec89c4 commit b4d7da9

File tree

4 files changed

+212
-0
lines changed

4 files changed

+212
-0
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,9 @@ jobs:
174174
- name: Install pyvistaqt requirements
175175
run: make install-pyvistaqt-requirements
176176

177+
- name: Pull docker image with test grpc server
178+
run: docker pull mkundu1/test-grpc-server
179+
177180
- name: Unit Testing
178181
run: make unittest
179182

tests/docker/helloworld_pb2.py

Lines changed: 134 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2+
import grpc
3+
4+
import helloworld_pb2 as helloworld__pb2
5+
6+
7+
class GreeterStub(object):
8+
"""The greeting service definition.
9+
"""
10+
11+
def __init__(self, channel):
12+
"""Constructor.
13+
14+
Args:
15+
channel: A grpc.Channel.
16+
"""
17+
self.SayHello = channel.unary_unary(
18+
'/helloworld.Greeter/SayHello',
19+
request_serializer=helloworld__pb2.HelloRequest.SerializeToString,
20+
response_deserializer=helloworld__pb2.HelloReply.FromString,
21+
)
22+
23+
24+
class GreeterServicer(object):
25+
"""The greeting service definition.
26+
"""
27+
28+
def SayHello(self, request, context):
29+
"""Sends a greeting
30+
"""
31+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
32+
context.set_details('Method not implemented!')
33+
raise NotImplementedError('Method not implemented!')
34+
35+
36+
def add_GreeterServicer_to_server(servicer, server):
37+
rpc_method_handlers = {
38+
'SayHello': grpc.unary_unary_rpc_method_handler(
39+
servicer.SayHello,
40+
request_deserializer=helloworld__pb2.HelloRequest.FromString,
41+
response_serializer=helloworld__pb2.HelloReply.SerializeToString,
42+
),
43+
}
44+
generic_handler = grpc.method_handlers_generic_handler(
45+
'helloworld.Greeter', rpc_method_handlers)
46+
server.add_generic_rpc_handlers((generic_handler,))

tests/docker/test_server.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import subprocess
2+
from time import sleep
3+
4+
import grpc
5+
6+
import helloworld_pb2
7+
import helloworld_pb2_grpc
8+
9+
10+
def test_server():
11+
subprocess.run(
12+
[
13+
"docker",
14+
"run",
15+
"--name",
16+
"test_server",
17+
"-d",
18+
"--rm",
19+
"-p",
20+
"50051:50051",
21+
"mkundu1/test-grpc-server",
22+
]
23+
)
24+
sleep(2)
25+
with grpc.insecure_channel("localhost:50051") as channel:
26+
stub = helloworld_pb2_grpc.GreeterStub(channel)
27+
response = stub.SayHello(helloworld_pb2.HelloRequest(name="World"))
28+
assert response.message == "Hello, World!"
29+
subprocess.run(["docker", "stop", "test_server"])

0 commit comments

Comments
 (0)