Implement Open-Xchange calendar profiles
This commit is contained in:
@@ -13,6 +13,7 @@ from govoplan_calendar.backend.manifest import (
|
||||
EWS_PROVIDER_ID,
|
||||
GRAPH_PROVIDER_ID,
|
||||
ICS_PROVIDER_ID,
|
||||
OPEN_XCHANGE_PROVIDER_ID,
|
||||
manifest,
|
||||
)
|
||||
from govoplan_calendar.backend.provider_state import (
|
||||
@@ -20,6 +21,7 @@ from govoplan_calendar.backend.provider_state import (
|
||||
ews_provider_states,
|
||||
graph_provider_states,
|
||||
ics_provider_states,
|
||||
open_xchange_provider_states,
|
||||
)
|
||||
from govoplan_calendar.backend.schemas import (
|
||||
CalendarCalDavSourceCreateRequest,
|
||||
@@ -117,11 +119,11 @@ class CalendarProviderStateTests(unittest.TestCase):
|
||||
),
|
||||
)
|
||||
self.assertEqual(
|
||||
{CALDAV_PROVIDER_ID, ICS_PROVIDER_ID, GRAPH_PROVIDER_ID, EWS_PROVIDER_ID},
|
||||
{CALDAV_PROVIDER_ID, ICS_PROVIDER_ID, GRAPH_PROVIDER_ID, EWS_PROVIDER_ID, OPEN_XCHANGE_PROVIDER_ID},
|
||||
{item.id for item in manifest.external_providers},
|
||||
)
|
||||
self.assertEqual(
|
||||
{CALDAV_PROVIDER_ID, ICS_PROVIDER_ID, GRAPH_PROVIDER_ID, EWS_PROVIDER_ID},
|
||||
{CALDAV_PROVIDER_ID, ICS_PROVIDER_ID, GRAPH_PROVIDER_ID, EWS_PROVIDER_ID, OPEN_XCHANGE_PROVIDER_ID},
|
||||
{
|
||||
item.provider_id
|
||||
for item in manifest.external_provider_state_providers
|
||||
@@ -169,6 +171,30 @@ class CalendarProviderStateTests(unittest.TestCase):
|
||||
self.assertNotIn("feeds.example.test", rendered)
|
||||
self.assertNotIn("exchange.example.test", rendered)
|
||||
|
||||
def test_open_xchange_profile_has_distinct_provider_state(self) -> None:
|
||||
self.source.metadata_ = {
|
||||
"integration_profile": "open_xchange",
|
||||
"connector_profile_ref": "connector:secret-detail",
|
||||
"identity_mapping_ref": "idm:secret-detail",
|
||||
}
|
||||
self.source.last_status = "ok"
|
||||
self.source.last_synced_at = datetime.now(UTC)
|
||||
self.session.flush()
|
||||
|
||||
self.assertEqual(
|
||||
(),
|
||||
caldav_provider_states(
|
||||
ExternalProviderStateContext(session=self.session, tenant_id="tenant-1")
|
||||
),
|
||||
)
|
||||
state = open_xchange_provider_states(
|
||||
ExternalProviderStateContext(session=self.session, tenant_id="tenant-1")
|
||||
)[0]
|
||||
|
||||
self.assertEqual(OPEN_XCHANGE_PROVIDER_ID, state.provider_id)
|
||||
self.assertEqual("healthy", state.health)
|
||||
self.assertNotIn("secret-detail", str(state.to_dict()))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user