Skip to content

Commit 94c85b9

Browse files
committed
more tests
1 parent 5eecffe commit 94c85b9

File tree

3 files changed

+33
-11
lines changed

3 files changed

+33
-11
lines changed

cloudquery/sdk/internal/servers/plugin_v3/plugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def GetName(self, request, context):
1616
return plugin_pb2.GetName.Response(name=self._plugin.name())
1717

1818
def GetVersion(self, request, context):
19-
return plugin_pb2.GetVersion.Response(name=self._plugin.version())
19+
return plugin_pb2.GetVersion.Response(version=self._plugin.version())
2020

2121
def Init(self, request: plugin_pb2.Init.Request, context):
2222
self._plugin.init(request.spec)

cloudquery/sdk/serve/plugin.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,18 @@ def run(self, args):
6363

6464
def _serve(self, args):
6565
logger = get_logger(args)
66-
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
66+
self._server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
6767
discovery_pb2_grpc.add_DiscoveryServicer_to_server(
68-
DiscoveryServicer([3]), server)
68+
DiscoveryServicer([3]), self._server)
6969
plugin_pb2_grpc.add_PluginServicer_to_server(
70-
PluginServicer(self._plugin, logger), server)
71-
server.add_insecure_port(args.address)
70+
PluginServicer(self._plugin, logger), self._server)
71+
self._server.add_insecure_port(args.address)
7272
print("Starting server. Listening on " + args.address)
73-
server.start()
74-
server.wait_for_termination()
73+
self._server.start()
74+
self._server.wait_for_termination()
75+
76+
def stop(self):
77+
self._server.stop(5)
7578

7679
def _generate_docs(self, args):
7780
print("Generating docs in format: " + args.format)

tests/serve/plugin.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,28 @@
11

2+
import random
3+
import grpc
4+
import time
5+
from concurrent import futures
26
from cloudquery.sdk import serve
37
from cloudquery.sdk import plugin
8+
from cloudquery.plugin_v3 import plugin_pb2_grpc, plugin_pb2
9+
410

511
def test_plugin_serve():
6-
pass
7-
# p = plugin.Plugin("test", "v1.0.0")
8-
# cmd = serve.PluginCommand(p)
9-
# cmd.run(["plugin", "serve"])
12+
p = plugin.Plugin("test", "v1.0.0")
13+
cmd = serve.PluginCommand(p)
14+
port = random.randint(5000, 50000)
15+
pool = futures.ThreadPoolExecutor(max_workers=1)
16+
pool.submit(cmd.run, ["serve", "--address", f"[::]:{port}"])
17+
time.sleep(1)
18+
try:
19+
with grpc.insecure_channel(f'localhost:{port}') as channel:
20+
stub = plugin_pb2_grpc.PluginStub(channel)
21+
response = stub.GetName(plugin_pb2.GetName.Request())
22+
assert response.name == "test"
23+
24+
response = stub.GetVersion(plugin_pb2.GetVersion.Request())
25+
assert response.version == "v1.0.0"
26+
finally:
27+
cmd.stop()
28+
pool.shutdown()

0 commit comments

Comments
 (0)