# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import grpc
import logging
import os
import sys
# if the current directory is in scripts (pwd), then we need to
# add plugin in order to import from that directory
if os.path.split(os.path.dirname(__file__))[1] != 'plugin':
sys.path.append(
os.path.join(os.path.abspath(os.path.dirname(__file__)), 'plugin'))
from plugin_constants import PLUGIN_PROTOS_PATH, PLUGIN_SERVICE_ADDRESS
sys.path.append(PLUGIN_PROTOS_PATH)
import test_plugin_service_pb2
import test_plugin_service_pb2_grpc
class TestPluginClient:
def __init__(self, plugin_service_address):
self.plugin_service_address = plugin_service_address
self.channel_stub = test_plugin_service_pb2_grpc.TestPluginServiceStub(
grpc.insecure_channel(plugin_service_address))
def ListEnabledPlugins(self, request):
return self.channel_stub.ListEnabledPlugins(request)
def TestCaseWillStart(self, request):
return self.channel_stub.TestCaseWillStart(request)
def TestCaseDidFinish(self, request):
return self.channel_stub.TestCaseDidFinish(request)
def TestCaseDidFail(self, request):
return self.channel_stub.TestCaseDidFail(request)
# for manual testing purposes
def run():
plugin_client = TestPluginClient(PLUGIN_SERVICE_ADDRESS)
response = plugin_client.ListEnabledPlugins(
test_plugin_service_pb2.ListEnabledPluginsRequest())
print("Plugin client received: " + str(response))
if __name__ == '__main__':
logging.basicConfig()
run()