72 lines
1.9 KiB
Python
72 lines
1.9 KiB
Python
import json
|
|
|
|
from ..config import BaseTestConfig
|
|
from ..test_data import test_user, message
|
|
|
|
|
|
class TestRequiredSignedMessageDecorator(BaseTestConfig):
|
|
def test_required_sm_aborts_without_data_and_sig_headers(self):
|
|
self.app.post(
|
|
"/api/v1/users/",
|
|
data=json.dumps(test_user),
|
|
content_type='application/json'
|
|
)
|
|
|
|
response = self.app.get(
|
|
"/api/v1/users/me",
|
|
headers={
|
|
"MsgSignature": message["sig"],
|
|
# "RawTypedData: message["data"]
|
|
}
|
|
)
|
|
|
|
self.assert401(response)
|
|
|
|
response = self.app.get(
|
|
"/api/v1/users/me",
|
|
headers={
|
|
# "MsgSignature": message["sig"],
|
|
"RawTypedData": message["data"]
|
|
}
|
|
)
|
|
|
|
self.assert401(response)
|
|
|
|
def test_required_sm_aborts_without_existing_user(self):
|
|
# We don't create the user here to test a failure case
|
|
# self.app.post(
|
|
# "/api/v1/users/",
|
|
# data=json.dumps(user),
|
|
# content_type='application/json'
|
|
# )
|
|
|
|
response = self.app.get(
|
|
"/api/v1/users/me",
|
|
headers={
|
|
"MsgSignature": message["sig"],
|
|
"RawTypedData": message["data"]
|
|
}
|
|
)
|
|
|
|
self.assert401(response)
|
|
|
|
def test_required_sm_decorator_authorizes_when_recovered_address_matches_existing_user(self):
|
|
self.app.post(
|
|
"/api/v1/users/",
|
|
data=json.dumps(test_user),
|
|
content_type='application/json'
|
|
)
|
|
|
|
response = self.app.get(
|
|
"/api/v1/users/me",
|
|
headers={
|
|
"MsgSignature": message["sig"],
|
|
"RawTypedData": message["data"]
|
|
}
|
|
)
|
|
|
|
response_json = response.json
|
|
|
|
self.assert200(response)
|
|
self.assertEqual(response_json["displayName"], test_user["displayName"])
|