Skip to content

Commit 9406c3c

Browse files
minor tweak to default values of APIHelper
1 parent dbcd147 commit 9406c3c

3 files changed

Lines changed: 65 additions & 11 deletions

File tree

conSys4Py/core/default_api_helpers.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ def resource_type_to_endpoint(res_type: APIResourceTypes, parent_type: APIResour
5656
return APITerms.DATASTREAMS.value
5757
case APIResourceTypes.OBSERVATION:
5858
return APITerms.OBSERVATIONS.value
59-
case APIResourceTypes.SYSTEM:
60-
return APITerms.SYSTEMS.value
6159
case APIResourceTypes.SYSTEM_EVENT:
6260
return APITerms.SYSTEM_EVENTS.value
6361
case APIResourceTypes.SAMPLING_FEATURE:
@@ -76,11 +74,11 @@ def resource_type_to_endpoint(res_type: APIResourceTypes, parent_type: APIResour
7674

7775
@dataclass
7876
class APIHelper(ABC):
79-
server_url = None
80-
api_root = "/api"
81-
username = None
82-
password = None
83-
user_auth = False
77+
server_url: str = None
78+
api_root: str = "api"
79+
username: str = None
80+
password: str = None
81+
user_auth: bool = False
8482

8583
def create_resource(self, res_type: APIResourceTypes, json_data: any, parent_res_id: str = None,
8684
from_collection: bool = False, url_endpoint: str = None):
@@ -230,7 +228,7 @@ class DefaultObjectRepresentations(BaseModel):
230228
"""
231229
# Part 1
232230
collections: str = Field(EncodingSchema.JSON.value)
233-
deployments: str = Field(EncodingSchema. GEO_JSON.value)
231+
deployments: str = Field(EncodingSchema.GEO_JSON.value)
234232
procedures: str = Field(EncodingSchema.GEO_JSON.value)
235233
properties: str = Field(EncodingSchema.SML_JSON.value)
236234
sampling_features: str = Field(EncodingSchema.GEO_JSON.value)
@@ -243,5 +241,3 @@ class DefaultObjectRepresentations(BaseModel):
243241
system_events: str = Field(EncodingSchema.OM_JSON.value)
244242
system_history: str = Field(EncodingSchema.GEO_JSON.value)
245243
# TODO: validate schemas for each resource to amke sure they are allowed per the spec
246-
247-

tests/conftest.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,5 @@
55

66
@pytest.fixture(autouse=True)
77
def server_url():
8-
print('Setting up server url')
98
global server_url
109
server_url = 'http://localhost:8282/sensorhub'

tests/test_default_api_helpers.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import conSys4Py.core.default_api_helpers as helpers
2+
from conSys4Py import APIResourceTypes
3+
4+
5+
def test_determine_parent_type():
6+
assert helpers.determine_parent_type(APIResourceTypes.SYSTEM) == APIResourceTypes.SYSTEM
7+
assert helpers.determine_parent_type(APIResourceTypes.COLLECTION) is None
8+
assert helpers.determine_parent_type(APIResourceTypes.CONTROL_CHANNEL) == APIResourceTypes.SYSTEM
9+
assert helpers.determine_parent_type(APIResourceTypes.COMMAND) == APIResourceTypes.CONTROL_CHANNEL
10+
assert helpers.determine_parent_type(APIResourceTypes.DATASTREAM) == APIResourceTypes.SYSTEM
11+
assert helpers.determine_parent_type(APIResourceTypes.OBSERVATION) == APIResourceTypes.DATASTREAM
12+
assert helpers.determine_parent_type(APIResourceTypes.SYSTEM_EVENT) == APIResourceTypes.SYSTEM
13+
assert helpers.determine_parent_type(APIResourceTypes.SAMPLING_FEATURE) == APIResourceTypes.SYSTEM
14+
assert helpers.determine_parent_type(APIResourceTypes.PROCEDURE) is None
15+
assert helpers.determine_parent_type(APIResourceTypes.PROPERTY) is None
16+
assert helpers.determine_parent_type(APIResourceTypes.SYSTEM_HISTORY) is None
17+
assert helpers.determine_parent_type(APIResourceTypes.DEPLOYMENT) is None
18+
19+
20+
def test_resource_type_to_ep():
21+
assert helpers.resource_type_to_endpoint(APIResourceTypes.SYSTEM) == 'systems'
22+
assert helpers.resource_type_to_endpoint(APIResourceTypes.COLLECTION) == 'collections'
23+
assert helpers.resource_type_to_endpoint(APIResourceTypes.CONTROL_CHANNEL) == 'controls'
24+
assert helpers.resource_type_to_endpoint(APIResourceTypes.COMMAND) == 'commands'
25+
assert helpers.resource_type_to_endpoint(APIResourceTypes.DATASTREAM) == 'datastreams'
26+
assert helpers.resource_type_to_endpoint(APIResourceTypes.OBSERVATION) == 'observations'
27+
assert helpers.resource_type_to_endpoint(APIResourceTypes.SYSTEM_EVENT) == 'systemEvents'
28+
assert helpers.resource_type_to_endpoint(APIResourceTypes.SAMPLING_FEATURE) == 'samplingFeatures'
29+
assert helpers.resource_type_to_endpoint(APIResourceTypes.PROCEDURE) == 'procedures'
30+
assert helpers.resource_type_to_endpoint(APIResourceTypes.PROPERTY) == 'properties'
31+
assert helpers.resource_type_to_endpoint(APIResourceTypes.SYSTEM_HISTORY) == 'history'
32+
assert helpers.resource_type_to_endpoint(APIResourceTypes.DEPLOYMENT) == 'deployments'
33+
assert helpers.resource_type_to_endpoint(APIResourceTypes.SYSTEM, APIResourceTypes.COLLECTION) == 'items'
34+
35+
36+
def test_resolve_resource_ep():
37+
server_url = 'http://localhost:8181'
38+
api_endpoint = 'api'
39+
api_helper = helpers.APIHelper(server_url, api_endpoint)
40+
assert api_helper.server_url == server_url
41+
assert api_helper.api_root == api_endpoint
42+
assert api_helper.resource_url_resolver(APIResourceTypes.SYSTEM) == f'{server_url}/{api_endpoint}/systems'
43+
assert api_helper.resource_url_resolver(APIResourceTypes.SYSTEM,
44+
'1234') == f'{server_url}/{api_endpoint}/systems/1234'
45+
assert api_helper.resource_url_resolver(APIResourceTypes.COLLECTION, '1234',
46+
from_collection=False) == f'{server_url}/{api_endpoint}/collections/1234'
47+
assert api_helper.resource_url_resolver(APIResourceTypes.SYSTEM, '1234', '5678',
48+
True) == f'{server_url}/{api_endpoint}/collections/5678/items/1234'
49+
50+
51+
def test_user_auth():
52+
server_url = 'http://localhost:8181'
53+
api_endpoint = 'api'
54+
uname = 'user'
55+
pword = 'pass'
56+
api_helper = helpers.APIHelper(server_url, api_endpoint, uname, pword, True)
57+
assert api_helper.get_helper_auth() == ('user', 'pass')
58+
api_helper.user_auth = False
59+
assert api_helper.get_helper_auth() is None

0 commit comments

Comments
 (0)