import json from random import randbytes from bson.objectid import ObjectId from pytest import fixture from roc_fnb.util.base64 import base64_decode from roc_fnb.website.database import Database from roc_fnb.website.models.user import User @fixture def user() -> User: return User.create('test@t.co', 'name', 'monkey') @fixture def database() -> Database: return Database.from_env() def test_user_and_check_password(user): assert user.name == 'name' assert user.email == 'test@t.co' assert user._id is None assert user.check_password('monkey') def test_store_and_retreive(user: User, database: Database): try: database.store_user(user) assert user._id is not None retreived = database.get_user_by_email(user.email) assert retreived is not None assert retreived._id == user._id assert retreived == user finally: if id := user._id: database.delete_user(id) def test_store_and_retreive_by_id(user: User, database: Database): try: database.store_user(user) assert user._id is not None retreived = database.get_user_by_id(user._id) assert retreived == user finally: if id := user._id: database.delete_user(id)