-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Python API add versions service
- Loading branch information
1 parent
eda55a4
commit 6473b97
Showing
4 changed files
with
94 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
from .submitter import ArmoniKSubmitter | ||
from .tasks import ArmoniKTasks | ||
from .results import ArmoniKResult | ||
from .versions import ArmoniKVersions |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
from typing import Dict | ||
|
||
from grpc import Channel | ||
|
||
from ..protogen.client.versions_service_pb2_grpc import VersionsStub | ||
from ..protogen.common.versions_common_pb2 import ListVersionsRequest, ListVersionsResponse | ||
|
||
|
||
class ArmoniKVersions: | ||
def __init__(self, grpc_channel: Channel): | ||
""" Result service client | ||
Args: | ||
grpc_channel: gRPC channel to use | ||
""" | ||
self._client = VersionsStub(grpc_channel) | ||
|
||
def list_versions(self) -> Dict[str, str]: | ||
"""Get versions of ArmoniK components. | ||
Return: | ||
A dictionnary mapping each component to its version. | ||
""" | ||
request = ListVersionsRequest() | ||
response: ListVersionsResponse = self._client.ListVersions(request) | ||
return {"core": response.core, "api": response.api} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
import pytest | ||
|
||
from .conftest import all_rpc_called, rpc_called, get_client | ||
from armonik.client import ArmoniKVersions | ||
|
||
|
||
class TestArmoniKVersions: | ||
|
||
def test_list_versions(self): | ||
""" | ||
Test the list_versions method of ArmoniKVersions client. | ||
Args: | ||
grpc_endpoint (str): The gRPC endpoint for the service mock. | ||
calls_recap_endpoint (str): The endpoint for tracking RPC calls. | ||
Assertions: | ||
Ensures that the RPC 'ListVersions' is called on the service 'Versions'. | ||
Asserts that the 'core' version is returned with correct value. | ||
Asserts that the 'api' version is returned with correct value. | ||
""" | ||
versions_client: ArmoniKVersions = get_client("Versions") | ||
versions = versions_client.list_versions() | ||
|
||
assert rpc_called("Versions", "ListVersions") | ||
assert versions["core"] == "Unknown" | ||
assert versions["api"] == "3.15.1.0" | ||
|
||
def test_service_fully_implemented(self): | ||
""" | ||
Test if all RPCs in the 'Versions' service have been called at least once. | ||
Args: | ||
calls_recap_endpoint (str): The endpoint for tracking RPC calls. | ||
Assertions: | ||
Ensures that all RPCs in the 'Versions' service have been called at least once. | ||
""" | ||
assert all_rpc_called("Versions") |