Skip to content

Commit

Permalink
[RSDK-8383] Add robot get_version (#700)
Browse files Browse the repository at this point in the history
  • Loading branch information
ale7714 committed Aug 5, 2024
1 parent c9049ed commit 9869edb
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
26 changes: 26 additions & 0 deletions src/viam/robot/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
GetOperationsResponse,
GetStatusRequest,
GetStatusResponse,
GetVersionRequest,
GetVersionResponse,
LogRequest,
Operation,
ResourceNamesRequest,
Expand Down Expand Up @@ -868,3 +870,27 @@ async def shutdown(self):
raise e
else:
raise e

######################
# Get Version #
######################

async def get_version(self) -> GetVersionResponse:
"""
Get version information about the robot.
::
result = machine.get_version()
print(result.platform)
print(result.version)
print(result.api_version)
Returns:
viam.proto.robot.GetVersionResponse: Robot version related information.
For more information, see `Machine Management API <https://docs.viam.com/appendix/apis/robot/>`_.
"""

request = GetVersionRequest()
return await self._client.GetVersion(request)
22 changes: 22 additions & 0 deletions tests/test_robot.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
GetOperationsResponse,
GetStatusRequest,
GetStatusResponse,
GetVersionRequest,
GetVersionResponse,
Operation,
ResourceNamesRequest,
ResourceNamesResponse,
Expand Down Expand Up @@ -153,6 +155,12 @@
machine_part_id="the-machine-part-id",
)

GET_VERVSION_RESPONSE = GetVersionResponse(
platform="rdk",
version="0.2.0",
api_version="0.3.0",
)


@pytest.fixture(scope="function")
def service() -> RobotService:
Expand Down Expand Up @@ -212,6 +220,11 @@ async def GetCloudMetadata(stream: Stream[GetCloudMetadataRequest, GetCloudMetad
assert request is not None
await stream.send_message(GET_CLOUD_METADATA_RESPONSE)

async def GetVersion(stream: Stream[GetVersionRequest, GetVersionResponse]) -> None:
request = await stream.recv_message()
assert request is not None
await stream.send_message(GET_VERVSION_RESPONSE)

async def Shutdown(stream: Stream[ShutdownRequest, ShutdownResponse]) -> None:
request = await stream.recv_message()
assert request is not None
Expand All @@ -226,6 +239,7 @@ async def Shutdown(stream: Stream[ShutdownRequest, ShutdownResponse]) -> None:
service.GetOperations = GetOperations
service.GetCloudMetadata = GetCloudMetadata
service.Shutdown = Shutdown
service.GetVersion = GetVersion

return service

Expand Down Expand Up @@ -440,6 +454,14 @@ async def test_get_cloud_metadata(self, service: RobotService):
assert md == GET_CLOUD_METADATA_RESPONSE
await client.close()

@pytest.mark.asyncio
async def test_get_version(self, service: RobotService):
async with ChannelFor([service]) as channel:
client = await RobotClient.with_channel(channel, RobotClient.Options())
md = await client.get_version()
assert md == GET_VERVSION_RESPONSE
await client.close()

@pytest.mark.asyncio
async def test_get_operations(self, service: RobotService):
async with ChannelFor([service]) as channel:
Expand Down

0 comments on commit 9869edb

Please sign in to comment.