Skip to content

Commit 21579c9

Browse files
Merge pull request #52 from mdsol/test-datetime-fixes
Fix test @freeze_time date values
2 parents de7be48 + a3d91fe commit 21579c9

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

tests/protocol_test_suite_helper.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# file to handle loading and parsing of mauth protocol test suite cases in order
22
# to run them as unit tests
33

4-
from datetime import datetime
4+
from datetime import datetime, timezone
55
import glob
66
import os
77
import json
@@ -29,7 +29,7 @@ def __init__(self):
2929
with open(os.path.join(MAUTH_PROTOCOL_DIR, "signing-params/rsa-key-pub"), "r") as key_file:
3030
self.public_key = key_file.read()
3131

32-
self.request_time = datetime.fromtimestamp(float(config["request_time"]))
32+
self.request_time = datetime.fromtimestamp(float(config["request_time"]), timezone.utc)
3333
self.app_uuid = config["app_uuid"]
3434
self.signer = Signer(config["app_uuid"], private_key, "v2")
3535
self.additional_attributes = {"app_uuid": config["app_uuid"], "time": config["request_time"]}
@@ -41,12 +41,12 @@ def cases(self):
4141
class ProtocolTestSuiteParser:
4242
def __init__(self, case_path):
4343
self.case_name = os.path.basename(case_path)
44-
self.request_attributes = self.request_attributes(case_path)
44+
self.request_attributes = self.build_request_attributes(case_path)
4545
self.sts = self.read_file_by_extension(case_path, "sts")
4646
self.sig = self.read_file_by_extension(case_path, "sig")
47-
self.auth_headers = self.read_json_by_extension(case_path, "authz")
47+
self.auth_headers = {k: str(v) for k, v in self.read_json_by_extension(case_path, "authz").items()}
4848

49-
def request_attributes(self, case_path):
49+
def build_request_attributes(self, case_path):
5050
req = self.read_json_by_extension(case_path, "req")
5151
body_file_path = os.path.join(case_path, req["body_filepath"]) if "body_filepath" in req else ""
5252
body = self.read_file(body_file_path, "rb") if body_file_path else req.get("body")

tests/protocol_test_suite_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def test_protocol_test_suite(self):
2727
for case_path in TEST_SUITE.cases():
2828
parser = ProtocolTestSuiteParser(case_path)
2929
request_signable = RequestSignable(**parser.request_attributes)
30-
signed_headers_v2 = TEST_SUITE.signer.signed_headers_v2(request_signable, TEST_SUITE.additional_attributes)
30+
signed_headers_v2 = TEST_SUITE.signer.signed_headers_v2(request_signable)
3131
if "authentication-only" not in case_path:
3232
with self.subTest(test="string_to_sign_v2", case_name=parser.case_name):
3333
string_to_sign = request_signable.string_to_sign_v2(TEST_SUITE.additional_attributes)

tests/signer_test.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import unittest
2-
from datetime import datetime
2+
from datetime import datetime, timezone
33
import os
44
from freezegun import freeze_time
55
from mauth_client.signable import RequestSignable
66
from mauth_client.signer import Signer
77

88
APP_UUID = "5ff4257e-9c16-11e0-b048-0026bbfffe5e"
99
EPOCH = "1309891855" # 2011-07-05 18:50:00 UTC
10-
EPOCH_DATETIME = datetime.fromtimestamp(float(EPOCH))
10+
EPOCH_DATETIME = datetime.fromtimestamp(float(EPOCH), timezone.utc)
1111
REQUEST_ATTRIBUTES = {"method": "GET", "url": "https://example.org/studies/123/users?k=v"}
1212
ADDITIONAL_ATTRIBUTES = {"app_uuid": APP_UUID, "time": EPOCH}
1313

@@ -40,7 +40,7 @@ def test_signed_headers(self):
4040
"MCC-Time": EPOCH,
4141
}
4242

43-
signed_headers = self.signer.signed_headers(self.signable, ADDITIONAL_ATTRIBUTES)
43+
signed_headers = self.signer.signed_headers(self.signable)
4444
self.assertEqual(signed_headers.keys(), expected.keys())
4545
self.assertRegex(signed_headers["X-MWS-Authentication"], expected["X-MWS-Authentication"])
4646
self.assertRegex(signed_headers["MCC-Authentication"], expected["MCC-Authentication"])
@@ -51,7 +51,7 @@ def test_signed_headers(self):
5151
def test_signed_headers_v1_only(self):
5252
expected = {"X-MWS-Authentication": r"\AMWS {}:".format(APP_UUID), "X-MWS-Time": EPOCH}
5353

54-
signed_headers = self.signer_v1_only.signed_headers(self.signable, ADDITIONAL_ATTRIBUTES)
54+
signed_headers = self.signer_v1_only.signed_headers(self.signable)
5555
self.assertEqual(signed_headers.keys(), expected.keys())
5656
self.assertRegex(signed_headers["X-MWS-Authentication"], expected["X-MWS-Authentication"])
5757
self.assertEqual(signed_headers["X-MWS-Time"], expected["X-MWS-Time"])
@@ -60,7 +60,7 @@ def test_signed_headers_v1_only(self):
6060
def test_signed_headers_v2_only(self):
6161
expected = {"MCC-Authentication": r"MWSV2 {}:[^;]*;".format(APP_UUID), "MCC-Time": EPOCH}
6262

63-
signed_headers = self.signer_v2_only.signed_headers(self.signable, ADDITIONAL_ATTRIBUTES)
63+
signed_headers = self.signer_v2_only.signed_headers(self.signable)
6464
self.assertEqual(signed_headers.keys(), expected.keys())
6565
self.assertRegex(signed_headers["MCC-Authentication"], expected["MCC-Authentication"])
6666
self.assertEqual(signed_headers["MCC-Time"], expected["MCC-Time"])

0 commit comments

Comments
 (0)