Example #1
0
    def test_pass_policies_in_constructor(self):
        # allow reservation updates
        self.capability = WorkerCapabilityToken(self.account_sid,
                                                self.auth_token,
                                                self.workspace_sid,
                                                self.worker_sid,
                                                allow_update_reservations=True)

        token = self.capability.to_jwt()
        self.assertNotEqual(None, token)

        decoded = WorkerCapabilityToken.from_jwt(token, self.auth_token)
        self.assertNotEqual(None, decoded)

        policies = decoded.payload['policies']
        self.assertEqual(len(policies), 8)

        taskPolicy = policies[6]
        tasksUrl = "https://taskrouter.twilio.com/v1/Workspaces/{0}/Tasks/**".format(
            self.workspace_sid)
        self.check_policy('POST', tasksUrl, taskPolicy)

        workerReservationsPolicy = policies[7]
        reservationsUrl = "https://taskrouter.twilio.com/v1/Workspaces/{0}/Workers/{1}/Reservations/**".format(
            self.workspace_sid, self.worker_sid)
        self.check_policy('POST', reservationsUrl, workerReservationsPolicy)
Example #2
0
    def test_generate_token_with_default_ttl(self):
        token = self.capability.to_jwt()
        self.assertNotEqual(None, token)

        decoded = WorkerCapabilityToken.from_jwt(token, self.auth_token)
        self.assertNotEqual(None, decoded)
        self.assertAlmostEqual(int(time.time()) + 3600, decoded.valid_until, delta=5)
Example #3
0
    def test_allow_activity_updates(self):
        # allow activity updates to the worker
        self.capability.allow_update_activities()

        token = self.capability.to_jwt()
        self.assertNotEqual(None, token)

        decoded = WorkerCapabilityToken.from_jwt(token, self.auth_token)
        self.assertNotEqual(None, decoded)

        policies = decoded.payload['policies']
        self.assertEqual(len(policies), 7)
        policy = policies[6]

        url = "https://taskrouter.twilio_code.com/v1/Workspaces/{0}/Workers/{1}".format(
            self.workspace_sid,
            self.worker_sid
        )

        self.assertEqual(url, policy["url"])
        self.assertEqual("POST", policy["method"])
        self.assertTrue(policy["allow"])
        self.assertNotEqual(None, policy['post_filter'])
        self.assertEqual({}, policy['query_filter'])
        self.assertTrue(policy['post_filter']['ActivitySid'])
Example #4
0
    def test_generate_token(self):
        token = self.capability.to_jwt()
        self.assertNotEqual(None, token)

        decoded = WorkerCapabilityToken.from_jwt(token, self.auth_token)
        self.assertNotEqual(None, decoded)

        self.check_decoded(decoded.payload, self.account_sid, self.workspace_sid, self.worker_sid,
                           self.worker_sid)