Skip to content

Commit

Permalink
Fix sort arg for v2, update v1 and v2 tests, default to ms for v2 and…
Browse files Browse the repository at this point in the history
… seconds for v1.
  • Loading branch information
TreWilkins committed Feb 15, 2025
1 parent 32ea2d8 commit 2a819f1
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
7 changes: 3 additions & 4 deletions duo_client/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -706,15 +706,15 @@ def get_telephony_log(self, mintime=0, api_version=1, maxtime:int = 0,

today = datetime.now(tz=timezone.utc)
# If mintime is not provided, the script defaults it to 180 days in past
mintime = int((today - timedelta(days=180)).timestamp() * 1000) if not mintime else mintime
mintime = int((today - timedelta(days=180)).timestamp() * (1000 if api_version == 2 else 1)) if not mintime else mintime
params["mintime"] = f"{int(mintime)}"

if api_version == 2: # Add additional parameters for API Version 2
if limit > 1000:
limit = 1000 # Limit is capped at 1000
params["limit"] = f"{int(limit)}"

params["sort"] = 'desc' if sort.lower() == 'desc' else 'asc'
params["sort"] = 'ts:desc' if sort.lower() == 'desc' else 'ts:asc'
# if maxtime is not provided, the script defaults it to now
maxtime = int(today.timestamp() * 1000) - 120 if not maxtime else maxtime
params["maxtime"] = f"{int(maxtime)}"
Expand All @@ -724,7 +724,6 @@ def get_telephony_log(self, mintime=0, api_version=1, maxtime:int = 0,
params["account_id"] = account_id
if filters:
params["filters"] = filters

response = self.json_api_call("GET", path, params)

if api_version == 1:
Expand Down Expand Up @@ -3842,4 +3841,4 @@ def set_telephony_credits(self, credits):
}
return self.json_api_call('POST',
'/admin/v1/billing/telephony_credits',
params)
params)
26 changes: 21 additions & 5 deletions tests/admin/test_telephony.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def test_get_telephony_logs_v2_no_args(self):
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"], ["desc"])
self.assertAlmostEqual(param_dict["sort"], ["ts:desc"])
self.assertEqual(param_dict["limit"], ["100"])

@freeze_time("2022-10-01")
Expand All @@ -51,7 +51,7 @@ def test_get_telephony_logs_v2_with_args(self):
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"], ["asc"])
self.assertEqual(param_dict["sort"], ["ts:asc"])
self.assertEqual(param_dict["limit"], ["900"])

@freeze_time("2022-10-01")
Expand All @@ -77,14 +77,30 @@ def test_get_telephony_logs_v1_no_args(self):
self.assertEqual(uri, "/admin/v1/logs/telephony")

@freeze_time("2022-10-01")
def test_get_telephony_logs_v1_with_mintime_arg(self):
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() * 1000)
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])
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"])

0 comments on commit 2a819f1

Please sign in to comment.