refactor, test: add some token repo tests, fix json tokens repo
parent
80a3750d92
commit
106a63e28c
|
@ -21,7 +21,7 @@ class AbstractTokensRepository(ABC):
|
||||||
"""Get the tokens"""
|
"""Get the tokens"""
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def create_token(self, name: str) -> Token:
|
def create_token(self, device_name: str) -> Token:
|
||||||
"""Create new token"""
|
"""Create new token"""
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
|
|
|
@ -58,17 +58,17 @@ class JsonTokensRepository(AbstractTokensRepository):
|
||||||
for userdata_token in tokens_file["tokens"]:
|
for userdata_token in tokens_file["tokens"]:
|
||||||
tokens_list.append(
|
tokens_list.append(
|
||||||
Token(
|
Token(
|
||||||
token=userdata_token.token,
|
token=userdata_token["token"],
|
||||||
device_name=userdata_token.name,
|
device_name=userdata_token["name"],
|
||||||
created_at=userdata_token.date,
|
created_at=userdata_token["date"],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
return tokens_list
|
return tokens_list
|
||||||
|
|
||||||
def create_token(self, name: str) -> Token:
|
def create_token(self, device_name: str) -> Token:
|
||||||
"""Create new token"""
|
"""Create new token"""
|
||||||
new_token = Token.generate(device_name=name)
|
new_token = Token.generate(device_name)
|
||||||
|
|
||||||
with WriteUserData(UserDataFiles.TOKENS) as tokens_file:
|
with WriteUserData(UserDataFiles.TOKENS) as tokens_file:
|
||||||
tokens_file["tokens"].append(
|
tokens_file["tokens"].append(
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
# pylint: disable=redefined-outer-name
|
||||||
|
# pylint: disable=unused-argument
|
||||||
|
# pylint: disable=missing-function-docstring
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from tests.common import read_json
|
||||||
|
from selfprivacy_api.repositories.tokens.json_tokens_repository import (
|
||||||
|
JsonTokensRepository,
|
||||||
|
)
|
||||||
|
from selfprivacy_api.models.tokens.token import Token
|
||||||
|
from selfprivacy_api.repositories.tokens.exceptions import (
|
||||||
|
TokenNotFoundError,
|
||||||
|
RecoveryKeyNotFoundError,
|
||||||
|
MnemonicError,
|
||||||
|
RecoveryKeyIsNotValidError,
|
||||||
|
RecoveryTokenError,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def tokens(mocker, datadir):
|
||||||
|
mocker.patch("selfprivacy_api.utils.TOKENS_FILE", new=datadir / "tokens.json")
|
||||||
|
assert read_json(datadir / "tokens.json")["tokens"] == [
|
||||||
|
{
|
||||||
|
"token": "iamtoken",
|
||||||
|
"name": "primary_token",
|
||||||
|
"date": "2022-07-15 17:41:31.675698",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
return datadir
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_token_by_token_string(tokens):
|
||||||
|
repo = JsonTokensRepository()
|
||||||
|
|
||||||
|
assert repo.get_token_by_token_string(token_string="iamtoken") is not None
|
||||||
|
assert repo.get_token_by_token_string(token_string="iamtoken") == Token(
|
||||||
|
token="iamtoken",
|
||||||
|
device_name="primary_token",
|
||||||
|
created_at=datetime.datetime(2022, 7, 15, 17, 41, 31, 675698),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_token_by_non_existent_token_string(tokens):
|
||||||
|
repo = JsonTokensRepository()
|
||||||
|
|
||||||
|
with pytest.raises(TokenNotFoundError):
|
||||||
|
assert repo.get_token_by_token_string(token_string="iamBadtoken") is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_token_by_name(tokens):
|
||||||
|
repo = JsonTokensRepository()
|
||||||
|
|
||||||
|
assert repo.get_token_by_name(token_name="primary_token") is not None
|
||||||
|
assert repo.get_token_by_name(token_name="primary_token") == Token(
|
||||||
|
token="iamtoken",
|
||||||
|
device_name="primary_token",
|
||||||
|
created_at=datetime.datetime(2022, 7, 15, 17, 41, 31, 675698),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_token_by_non_existent_name(tokens):
|
||||||
|
repo = JsonTokensRepository()
|
||||||
|
|
||||||
|
with pytest.raises(TokenNotFoundError):
|
||||||
|
assert repo.get_token_by_name(token_name="badname") is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_tokens(tokens):
|
||||||
|
repo = JsonTokensRepository()
|
||||||
|
|
||||||
|
assert repo.get_tokens() is not None
|
||||||
|
assert repo.get_tokens() == [
|
||||||
|
Token(
|
||||||
|
token="iamtoken",
|
||||||
|
device_name="primary_token",
|
||||||
|
created_at=datetime.datetime(2022, 7, 15, 17, 41, 31, 675698),
|
||||||
|
)
|
||||||
|
]
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"tokens": [
|
||||||
|
{
|
||||||
|
"token": "iamtoken",
|
||||||
|
"name": "primary_token",
|
||||||
|
"date": "2022-07-15 17:41:31.675698"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"recovery_token": {
|
||||||
|
"token": "iamtoken",
|
||||||
|
"date": "2022-09-24T17:54:07.607272",
|
||||||
|
"expiration": null,
|
||||||
|
"uses_left": null
|
||||||
|
},
|
||||||
|
"new_device": {
|
||||||
|
"token": "iamtoken",
|
||||||
|
"date": "2022-10-26 20:50:47.973212",
|
||||||
|
"expiration": "2022-10-26 21:00:47.974153"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue