pantalaimon: Add tests.

This commit is contained in:
Damir Jelić 2019-04-10 12:14:00 +02:00
parent 4bf5955031
commit d0ba6c26da
3 changed files with 85 additions and 0 deletions

3
Makefile Normal file
View File

@ -0,0 +1,3 @@
test:
python3 -m pytest
python3 -m pytest --flake8 pantalaimon

5
test-requirements.txt Normal file
View File

@ -0,0 +1,5 @@
pytest
pytest-flake8
pytest-isort
pytest-cov
faker

77
tests/store_test.py Normal file
View File

@ -0,0 +1,77 @@
import pdb
import pytest
import tempfile
import shutil
from nio.crypto import OlmAccount
from nio.store import SqliteStore
from pantalaimon.store import PanStore
from faker import Faker
from faker.providers import BaseProvider
from random import choices
from string import digits, ascii_letters, ascii_uppercase
faker = Faker()
class Provider(BaseProvider):
def mx_id(self):
return "@{}:{}".format(faker.user_name(), faker.hostname())
def device_id(self):
return "".join(choices(ascii_uppercase, k=10))
def access_token(self):
return "MDA" + "".join(choices(digits + ascii_letters, k=272))
faker.add_provider(Provider)
@pytest.fixture
def access_token():
return faker.access_token()
@pytest.fixture
def tempdir():
newpath = tempfile.mkdtemp()
yield newpath
shutil.rmtree(newpath)
@pytest.fixture
def panstore(tempdir):
for _ in range(10):
store = SqliteStore(
faker.mx_id(),
faker.device_id(),
tempdir,
"",
"pan.db"
)
account = OlmAccount()
store.save_account(account)
store = PanStore(tempdir, "pan.db")
return store
class TestClass(object):
def test_account_loading(self, panstore):
accounts = panstore.get_users()
# pdb.set_trace()
assert len(accounts) == 10
def test_token_saving(self, panstore, access_token):
accounts = panstore.get_users()
user_id = accounts[0][0]
device_id = accounts[0][1]
panstore.save_access_token(user_id, device_id, access_token)
token = panstore.load_access_token(user_id, device_id)
access_token == token