File: test_telephony.py

package info (click to toggle)
python-duo-client 5.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 784 kB
  • sloc: python: 7,231; makefile: 7; sh: 6
file content (106 lines) | stat: -rw-r--r-- 5,006 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
from .. import util
from .base import TestAdmin
from datetime import datetime, timedelta
from freezegun import freeze_time
import pytz


class TestTelephonyLogEndpoints(TestAdmin):
    def test_get_telephony_logs_v2(self):
        """Test to get activities log."""
        response = self.items_response_client.get_telephony_log(
            maxtime=1663131599000, mintime=1662958799000, api_version=2
        )
        uri, args = response["uri"].split("?")

        self.assertEqual(response["method"], "GET")
        self.assertEqual(uri, "/admin/v2/logs/telephony")
        self.assertEqual(
            util.params_to_dict(args)["account_id"], [self.items_response_client.account_id]
        )

    @freeze_time("2022-10-01")
    def test_get_telephony_logs_v2_no_args(self):
        freezed_time = datetime(2022, 10, 1, 0, 0, 0, tzinfo=pytz.utc)
        expected_mintime = str(
            int((freezed_time - timedelta(days=180)).timestamp() * 1000)
        )
        expected_maxtime = str(int(freezed_time.timestamp() * 1000) - 120)
        response = self.items_response_client.get_telephony_log(api_version=2)
        uri, args = response["uri"].split("?")
        param_dict = util.params_to_dict(args)
        self.assertEqual(response["method"], "GET")
        self.assertEqual(uri, "/admin/v2/logs/telephony")
        self.assertEqual(param_dict["mintime"], [expected_mintime])
        self.assertEqual(param_dict["maxtime"], [expected_maxtime])
        self.assertAlmostEqual(param_dict["sort"], ["ts:desc"])
        self.assertEqual(param_dict["limit"], ["100"])

    @freeze_time("2022-10-01")
    def test_get_telephony_logs_v2_with_args(self):
        mintime = datetime(2022, 9, 1, 0, 0, 0, tzinfo=pytz.utc)
        expected_mintime = str(int(mintime.timestamp() * 1000))
        maxtime = datetime(2022, 10, 1, 0, 0, 0, tzinfo=pytz.utc)
        expected_maxtime = str(int(maxtime.timestamp() * 1000) - 120)
        params = {"mintime": expected_mintime, "sort": "asc", "limit": 900}
        response = self.items_response_client.get_telephony_log(api_version=2, 
                                                                **params)
        uri, args = response["uri"].split("?")
        param_dict = util.params_to_dict(args)
        self.assertEqual(response["method"], "GET")
        self.assertEqual(uri, "/admin/v2/logs/telephony")
        self.assertEqual(param_dict["mintime"], [expected_mintime])
        self.assertEqual(param_dict["maxtime"], [expected_maxtime])
        self.assertEqual(param_dict["sort"], ["ts:asc"])  
        self.assertEqual(param_dict["limit"], ["900"])

    @freeze_time("2022-10-01")
    def test_get_telephony_logs_v2_with_unsupported_args(self):
        params = {
            "unsupported": "argument",
            "non_existent": "argument"
            }
        response = self.items_response_client.get_telephony_log(api_version=2, 
                                                                **params)
        uri, args = response["uri"].split("?")
        param_dict = util.params_to_dict(args)
        self.assertEqual(response["method"], "GET")
        self.assertEqual(uri, "/admin/v2/logs/telephony")
        self.assertNotIn("unsupported", param_dict)
        self.assertNotIn("non_existent", param_dict)

    @freeze_time("2022-10-01")
    def test_get_telephony_logs_v1_no_args(self):
        response = self.client_list.get_telephony_log()
        uri, args = response[0]["uri"].split("?")
        self.assertEqual(response[0]["method"], "GET")
        self.assertEqual(uri, "/admin/v1/logs/telephony")

    @freeze_time("2022-10-01")
    def test_get_telephony_logs_v1_with_args(self):
        freezed_time = datetime(2022, 9, 1, 0, 0, 0, tzinfo=pytz.utc)
        expected_mintime = str(
            int((freezed_time - timedelta(days=180)).timestamp())
        )
        response = self.client_list.get_telephony_log(mintime=expected_mintime)
        uri, args = response[0]["uri"].split("?")
        param_dict = util.params_to_dict(args)
        self.assertEqual(response[0]["method"], "GET")
        self.assertEqual(uri, "/admin/v1/logs/telephony")
        self.assertEqual(param_dict["mintime"], [expected_mintime])
    
    @freeze_time("2022-10-01")
    def test_get_telephony_logs_v1_ignore_v2_args(self):
        freezed_time = datetime(2022, 9, 1, 0, 0, 0, tzinfo=pytz.utc)
        expected_mintime = str(
            int((freezed_time - timedelta(days=180)).timestamp())
        )
        params = {"mintime": expected_mintime, "limit": 20, "sort": "ts:asc"}
        response = self.client_list.get_telephony_log(**params)
        uri, args = response[0]["uri"].split("?")
        param_dict = util.params_to_dict(args)
        self.assertEqual(response[0]["method"], "GET")
        self.assertEqual(uri, "/admin/v1/logs/telephony")
        self.assertEqual(param_dict["mintime"], [expected_mintime])
        self.assertNotIn(param_dict["limit"], ["limit"])
        self.assertNotIn(param_dict["sort"], ["sort"])