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"""
|
||||
|
||||
@abstractmethod
|
||||
def create_token(self, name: str) -> Token:
|
||||
def create_token(self, device_name: str) -> Token:
|
||||
"""Create new token"""
|
||||
|
||||
@abstractmethod
|
||||
|
|
|
@ -58,17 +58,17 @@ class JsonTokensRepository(AbstractTokensRepository):
|
|||
for userdata_token in tokens_file["tokens"]:
|
||||
tokens_list.append(
|
||||
Token(
|
||||
token=userdata_token.token,
|
||||
device_name=userdata_token.name,
|
||||
created_at=userdata_token.date,
|
||||
token=userdata_token["token"],
|
||||
device_name=userdata_token["name"],
|
||||
created_at=userdata_token["date"],
|
||||
)
|
||||
)
|
||||
|
||||
return tokens_list
|
||||
|
||||
def create_token(self, name: str) -> Token:
|
||||
def create_token(self, device_name: str) -> Token:
|
||||
"""Create new token"""
|
||||
new_token = Token.generate(device_name=name)
|
||||
new_token = Token.generate(device_name)
|
||||
|
||||
with WriteUserData(UserDataFiles.TOKENS) as tokens_file:
|
||||
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