# 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), ) ]