Skip to content

Commit c3debae

Browse files
authored
Commit missing file, add automated test for api & model functionality (#16)
* add test for api client and model functionality * bump version * commit
1 parent 3802651 commit c3debae

File tree

3 files changed

+70
-2
lines changed

3 files changed

+70
-2
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from typing import Any, Dict, List, Type, TypeVar
2+
3+
from attrs import define as _attrs_define
4+
from attrs import field as _attrs_field
5+
6+
T = TypeVar("T", bound="WorkspaceComputeConfigEnvironmentVariables")
7+
8+
9+
@_attrs_define
10+
class WorkspaceComputeConfigEnvironmentVariables:
11+
"""Map of environment variables injected into the container at runtime. Keys must be non-blank.
12+
13+
Example:
14+
{'ENV_MODE': 'production', 'LOG_LEVEL': 'debug'}
15+
16+
"""
17+
18+
additional_properties: Dict[str, str] = _attrs_field(init=False, factory=dict)
19+
20+
def to_dict(self) -> Dict[str, Any]:
21+
field_dict: Dict[str, Any] = {}
22+
field_dict.update(self.additional_properties)
23+
field_dict.update({})
24+
25+
return field_dict
26+
27+
@classmethod
28+
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
29+
d = src_dict.copy()
30+
workspace_compute_config_environment_variables = cls()
31+
32+
workspace_compute_config_environment_variables.additional_properties = d
33+
return workspace_compute_config_environment_variables
34+
35+
@property
36+
def additional_keys(self) -> List[str]:
37+
return list(self.additional_properties.keys())

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "cirro_api_client"
3-
version = "1.2.0"
3+
version = "1.2.1"
44
description = "A client library for accessing Cirro"
55
authors = ["Cirro <support@cirro.bio>"]
66
license = "MIT"

tests/test_client.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,40 @@
11
import unittest
2+
from http import HTTPStatus
3+
from unittest.mock import Mock
24

3-
from cirro_api_client import CirroApiClient, TokenAuth
5+
from cirro_api_client.v1.models import User
6+
7+
8+
def _generate_mock_client(response_data: dict):
9+
mock_client = Mock()
10+
httpx_client = Mock()
11+
mock_client.get_httpx_client.return_value = httpx_client
12+
mock_request = Mock()
13+
httpx_client.request.return_value = mock_request
14+
status_code = HTTPStatus(200)
15+
mock_request.status_code = status_code
16+
mock_request.json.return_value = response_data
17+
return mock_client
418

519

620
class TestClient(unittest.TestCase):
721
def test_client_set_up(self):
22+
from cirro_api_client import CirroApiClient, TokenAuth
823
client = CirroApiClient(auth_method=TokenAuth(token=""), base_url="https://api.cirro.bio")
924
self.assertIsNotNone(client)
25+
26+
def test_import_models(self):
27+
from cirro_api_client.v1.models import InviteUserRequest
28+
req = InviteUserRequest(name="Test User", organization="test", email="test")
29+
self.assertEqual(req.name, "Test User")
30+
self.assertIn('name', req.to_dict())
31+
self.assertEqual(len(req.additional_properties.keys()), 0)
32+
33+
def test_import_api_methods(self):
34+
from cirro_api_client.v1.api.users import list_users
35+
mock_client = _generate_mock_client({'data': [Mock()], 'nextToken': None})
36+
37+
response = list_users.sync(client=mock_client, limit=1)
38+
self.assertIsNotNone(response)
39+
self.assertEqual(len(response.data), 1)
40+
self.assertIsInstance(response.data[0], User)

0 commit comments

Comments
 (0)