"""Tests for shared.ring_scheduler.update_queue_routing (ThreeCXClient faked).""" import shared.ring_scheduler as ring_scheduler class FakeThreeCXClient: instances = [] def __init__(self, domain, auth_mode, client_id, client_secret): self.domain = domain self.auth_mode = auth_mode self.client_id = client_id self.client_secret = client_secret self.forwarding = None FakeThreeCXClient.instances.append(self) def get_queue(self, number): self.queue_number = number return {"Id": 42, "Number": number} def update_queue_forwarding(self, queue_id, closed, holiday): self.forwarding = {"queue_id": queue_id, "closed": closed, "holiday": holiday} return 200 def test_update_queue_routing_points_queue_at_extension(monkeypatch): FakeThreeCXClient.instances = [] def fake_oauth(domain, client_id, client_secret): return FakeThreeCXClient(domain, "oauth", client_id, client_secret) monkeypatch.setattr(ring_scheduler, "oauth_client", fake_oauth) result = ring_scheduler.update_queue_routing( extension="114", queue_number="800", domain="test.3cx.us", client_id="cid", client_secret="secret", ) assert result == {"extension": "114", "queue": "800"} client = FakeThreeCXClient.instances[0] assert client.auth_mode == "oauth" assert client.queue_number == "800" # Both closed and holiday routes point at the on-call extension. assert client.forwarding == {"queue_id": 42, "closed": "114", "holiday": "114"}