Skip to content

Commit

Permalink
[uss_qualifier] DSS0030 simple subscription test scenario
Browse files Browse the repository at this point in the history
  • Loading branch information
Shastick committed Oct 27, 2023
1 parent 1199553 commit 70593a2
Show file tree
Hide file tree
Showing 22 changed files with 1,141 additions and 53 deletions.
11 changes: 11 additions & 0 deletions monitoring/monitorlib/fetch/rid.py
Original file line number Diff line number Diff line change
Expand Up @@ -603,6 +603,17 @@ def isa_url(self) -> str:
f"Cannot retrieve isa_url using RID version {self.rid_version}"
)

@property
def notification_index(self) -> int:
if self.rid_version == RIDVersion.f3411_19:
return self.v19_value.notification_index
elif self.rid_version == RIDVersion.f3411_22a:
return self.v22a_value.notification_index
else:
raise NotImplementedError(
f"Cannot retrieve notification_index using RID version {self.rid_version}"
)


class RIDQuery(ImplicitDict):
v19_query: Optional[Query] = None
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,11 @@

While neither ASTM F3411-19 nor F3411-22a explicitly require DSS implementations to implement all endpoints specified in Annex A4 (of each respective standard), InterUSS automated testing expects DSS implementations to implement all DSS endpoints specified in Annex A4. Specifically:

* <tt>PutISA</tt>: The DSS implementation under test must implement the ability to create and update an Identification Service Area by ID in accordance with the API specified in Annex A4 of the respective standard.
* <tt>GetISA</tt>: The DSS implementation under test must implement the ability to retrieve an Identification Service Area by ID in accordance with the API specified in Annex A4 of the respective standard.
* <tt>DeleteISA</tt>: The DSS implementation under test must implement the ability to delete an Identification Service Area by ID in accordance with the API specified in Annex A4 of the respective standard.
* <tt>SearchISAs</tt>: The DSS implementation under test must implement the ability to search for Identification Service Areas meeting the specified criteria in accordance with the API specified in Annex A4 of the respective standard.
* <tt>PutSubscription</tt>: The DSS implementation under test must implement the ability to create a subscription in accordance with the API specified in Annex A4 of the respective standard.
* <tt>GetSubscription</tt>: The DSS implementation under test must implement the ability to retrieve a Subscription by ID in accordance with the API specified in Annex A4 of the respective standard.
* <tt>DeleteSubscription</tt>: The DSS implementation under test must implement the ability to delete s Subscription in accordance with the API specified in Annex A4 of the respective standard.
* <tt>SearchSubscriptions</tt>: The DSS implementation under test must implement the ability to search for subscriptions in accordance with the API specified in Annex A4 of the respective standard.
21 changes: 19 additions & 2 deletions monitoring/uss_qualifier/resources/netrid/service_area.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import datetime
from typing import List
from typing import List, Dict, Any

from implicitdict import ImplicitDict, StringBasedDateTime
from monitoring.monitorlib.geo import LatLngPoint

from monitoring.monitorlib.geo import LatLngPoint
from monitoring.uss_qualifier.resources.resource import Resource


Expand Down Expand Up @@ -45,6 +45,23 @@ def shifted_time_end(
dt = new_reference_time - self.reference_time.datetime
return self.time_end.datetime + dt

def get_new_subscription_params(
self, sub_id: str, start_time: datetime.datetime, duration: datetime.timedelta
) -> Dict[str, Any]:
"""
Builds a dict of parameters that can be used to create a subscription, using this ISA's parameters
and the passed start time and duration
"""
return dict(
sub_id=sub_id,
area_vertices=[vertex.as_s2sphere() for vertex in self.footprint],
alt_lo=self.altitude_min,
alt_hi=self.altitude_max,
start_time=start_time,
end_time=start_time + duration,
uss_base_url=self.base_url,
)


class ServiceAreaResource(Resource[ServiceAreaSpecification]):
specification: ServiceAreaSpecification
Expand Down
Loading

0 comments on commit 70593a2

Please sign in to comment.