def test_create_user(db: Session) -> None: email = random_email() password = random_lower_string() user_in = UserCreate(email=email, password=password) user = crud.user.create(db, obj_in=user_in) assert user.email == email assert hasattr(user, "hashed_password")
def seed_db(ctx, config_name="dev"): """Initialize Database""" from models.user import User from utils.security_utils import get_password_hash from utils.db_utils.session import db_session from schemas.user import UserCreate from services.user import user_service user_service.create( db_session, obj_in=UserCreate(username="******", password="******", roles="admin"), ) user_service.create(db_session, obj_in=UserCreate(username="******", password="******"))
def test_check_if_user_is_superuser(db: Session) -> None: email = random_email() password = random_lower_string() user_in = UserCreate(email=email, password=password, is_superuser=True) user = crud.user.create(db, obj_in=user_in) is_superuser = crud.user.is_superuser(user) assert is_superuser is True
def test_check_if_user_is_superuser_normal_user(db: Session) -> None: username = random_email() password = random_lower_string() user_in = UserCreate(email=username, password=password) user = crud.user.create(db, obj_in=user_in) is_superuser = crud.user.is_superuser(user) assert is_superuser is False
def test_check_if_user_is_active_inactive(db: Session) -> None: email = random_email() password = random_lower_string() user_in = UserCreate(email=email, password=password, disabled=True) user = crud.user.create(db, obj_in=user_in) is_active = crud.user.is_active(user) assert is_active
def test_authenticate_user(db: Session) -> None: email = random_email() password = random_lower_string() user_in = UserCreate(email=email, password=password) user = crud.user.create(db, obj_in=user_in) authenticated_user = crud.user.authenticate(db, email=email, password=password) assert authenticated_user assert user.email == authenticated_user.email
def create(self, db_session: Session, *, obj_in: UserCreate) -> User: db_obj = User( **obj_in.dict(exclude={"password"}), password=get_password_hash(obj_in.password), ) db_session.add(db_obj) db_session.commit() db_session.refresh(db_obj) return db_obj
def test_get_user(db: Session) -> None: password = random_lower_string() username = random_email() user_in = UserCreate(email=username, password=password, is_superuser=True) user = crud.user.create(db, obj_in=user_in) user_2 = crud.user.get(db, id=user.id) assert user_2 assert user.email == user_2.email assert jsonable_encoder(user) == jsonable_encoder(user_2)
def test_retrieve_users(client: TestClient, superuser_token_headers: dict, db: Session) -> None: username = random_email() password = random_lower_string() user_in = UserCreate(email=username, password=password) crud.user.create(db, obj_in=user_in) username2 = random_email() password2 = random_lower_string() user_in2 = UserCreate(email=username2, password=password2) crud.user.create(db, obj_in=user_in2) r = client.get(f"{settings.API_V1_STR}/users/", headers=superuser_token_headers) all_users = r.json() assert len(all_users) > 1 for item in all_users: assert "email" in item
def init_db(db_session): init_user = user.get_by_username( db_session, username=config.FIRST_SUPERUSER_USERNAME ) if not init_user: user_in = UserCreate( username=config.FIRST_SUPERUSER_USERNAME, email=config.FIRST_SUPERUSER_EMAIL, password=config.FIRST_SUPERUSER_PASSWORD, is_superuser=True, ) init_user = user.create(db_session, obj_in=user_in)
def test_update_user(db: Session) -> None: password = random_lower_string() email = random_email() user_in = UserCreate(email=email, password=password, is_superuser=True) user = crud.user.create(db, obj_in=user_in) new_password = random_lower_string() user_in_update = UserUpdate(password=new_password, is_superuser=True) crud.user.update(db, db_obj=user, obj_in=user_in_update) user_2 = crud.user.get(db, id=user.id) assert user_2 assert user.email == user_2.email assert verify_password(new_password, user_2.hashed_password)
def test_get_existing_user(client: TestClient, superuser_token_headers: dict, db: Session) -> None: username = random_email() password = random_lower_string() user_in = UserCreate(email=username, password=password) user = crud.user.create(db, obj_in=user_in) user_id = user.id r = client.get( f"{settings.API_V1_STR}/users/{user_id}", headers=superuser_token_headers, ) assert 200 <= r.status_code < 300 api_user = r.json() existing_user = crud.user.get_by_email(db, email=username) assert existing_user assert existing_user.email == api_user["email"]
def test_create_user_existing_username(client: TestClient, superuser_token_headers: dict, db: Session) -> None: username = random_email() # username = email password = random_lower_string() user_in = UserCreate(email=username, password=password) crud.user.create(db, obj_in=user_in) data = {"email": username, "password": password} r = client.post( f"{settings.API_V1_STR}/users/", headers=superuser_token_headers, json=data, ) created_user = r.json() assert r.status_code == 400 assert "_id" not in created_user
def authentication_token_from_email(*, client: TestClient, email: str, db: Session) -> Dict[str, str]: """ Return a valid token for the user with given email. If the user doesn't exist it is created first. """ password = random_lower_string() user = crud.user.get_by_email(db, email=email) if not user: user_in_create = UserCreate(username=email, email=email, password=password) user = crud.user.create(db, obj_in=user_in_create) else: user_in_update = UserUpdate(password=password) user = crud.user.update(db, db_obj=user, obj_in=user_in_update) return user_authentication_headers(client=client, email=email, password=password)
def create_random_user(db: Session) -> User: email = random_email() password = random_lower_string() user_in = UserCreate(username=email, email=email, password=password) user = crud.user.create(db=db, obj_in=user_in) return user
async def resolve_user_create(parent, info, user) -> dict: store_data = User.get_instance() data = UserCreate(**user) normalize = change_keys(data.dict(exclude_none=True), key="_key") return await store_data.create(normalize)