async def test_queries(sqlalchemy_user_db: SQLAlchemyUserDatabase[UserDB]): user = UserDB( email="*****@*****.**", hashed_password=get_password_hash("guinevere"), ) # Create user_db = await sqlalchemy_user_db.create(user) assert user_db.id is not None assert user_db.is_active is True assert user_db.is_superuser is False assert user_db.email == user.email # Update user_db.is_superuser = True await sqlalchemy_user_db.update(user_db) # Get by id id_user = await sqlalchemy_user_db.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.is_superuser is True # Get by email email_user = await sqlalchemy_user_db.get_by_email(str(user.email)) assert email_user is not None assert email_user.id == user_db.id # Exception when inserting existing email with pytest.raises(sqlite3.IntegrityError): await sqlalchemy_user_db.create(user) # Exception when inserting non-nullable fields with pytest.raises(sqlite3.IntegrityError): wrong_user = UserDB(hashed_password="******") await sqlalchemy_user_db.create(wrong_user) # Unknown user unknown_user = await sqlalchemy_user_db.get_by_email("*****@*****.**") assert unknown_user is None # Delete user await sqlalchemy_user_db.delete(user) deleted_user = await sqlalchemy_user_db.get(user.id) assert deleted_user is None # Exception when creating/updating a OAuth user user_oauth = UserDBOAuth( email="*****@*****.**", hashed_password=get_password_hash("guinevere"), ) with pytest.raises(NotSetOAuthAccountTableError): await sqlalchemy_user_db.create(user_oauth) with pytest.raises(NotSetOAuthAccountTableError): await sqlalchemy_user_db.update(user_oauth) # Exception when trying to get by OAuth account with pytest.raises(NotSetOAuthAccountTableError): await sqlalchemy_user_db.get_by_oauth_account("foo", "bar")
async def test_queries_oauth( ormar_user_db_oauth: OrmarUserDatabase[UserDBOAuth], oauth_account1, oauth_account2, oauth_account3, ): user = UserDBOAuth( email="*****@*****.**", hashed_password=get_password_hash("guinevere"), oauth_accounts=[oauth_account1, oauth_account2], ) # Create user_db = await ormar_user_db_oauth.create(user) assert user_db.id is not None assert hasattr(user_db, "oauth_accounts") assert len(user_db.oauth_accounts) == 2 # Update user_db.oauth_accounts[0].access_token = "NEW_TOKEN" await ormar_user_db_oauth.update(user_db) # Get by id id_user = await ormar_user_db_oauth.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.oauth_accounts[0].access_token == "NEW_TOKEN" # Add new oauth id_user.oauth_accounts.append(oauth_account3) await ormar_user_db_oauth.update(id_user) id_user_updated = await ormar_user_db_oauth.get(user.id) assert len(id_user_updated.oauth_accounts) == 3 # Remove oauth2 and update id_user.oauth_accounts = [ oauth for oauth in id_user.oauth_accounts if oauth.id != oauth_account2.id ] await ormar_user_db_oauth.update(id_user) id_user_updated = await ormar_user_db_oauth.get(user.id) assert len(id_user_updated.oauth_accounts) == 2 # Get by email email_user = await ormar_user_db_oauth.get_by_email(str(user.email)) assert email_user is not None assert email_user.id == user_db.id assert len(email_user.oauth_accounts) == 2 # Get by OAuth account oauth_user = await ormar_user_db_oauth.get_by_oauth_account( oauth_account1.oauth_name, oauth_account1.account_id) assert oauth_user is not None assert oauth_user.id == user.id # Unknown OAuth account unknown_oauth_user = await ormar_user_db_oauth.get_by_oauth_account( "foo", "bar") assert unknown_oauth_user is None
async def test_queries_oauth( tortoise_user_db_oauth: TortoiseUserDatabase[UserDBOAuth], oauth_account1, oauth_account2, ): user = UserDBOAuth( id="111", email="*****@*****.**", hashed_password=get_password_hash("guinevere"), oauth_accounts=[oauth_account1, oauth_account2], ) # Create user_db = await tortoise_user_db_oauth.create(user) assert user_db.id is not None assert hasattr(user_db, "oauth_accounts") assert len(user_db.oauth_accounts) == 2 # Update user_db.oauth_accounts[0].access_token = "NEW_TOKEN" await tortoise_user_db_oauth.update(user_db) # Get by id id_user = await tortoise_user_db_oauth.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.oauth_accounts[0].access_token == "NEW_TOKEN" # Get by email email_user = await tortoise_user_db_oauth.get_by_email(str(user.email)) assert email_user is not None assert email_user.id == user_db.id assert len(email_user.oauth_accounts) == 2 # List users = await tortoise_user_db_oauth.list() assert len(users) == 1 first_user = users[0] assert first_user.id == user_db.id assert len(first_user.oauth_accounts) == 2 # Get by OAuth account oauth_user = await tortoise_user_db_oauth.get_by_oauth_account( oauth_account1.oauth_name, oauth_account1.account_id) assert oauth_user is not None assert oauth_user.id == user.id # Unknown OAuth account unknown_oauth_user = await tortoise_user_db_oauth.get_by_oauth_account( "foo", "bar") assert unknown_oauth_user is None
async def test_queries_oauth( sqlalchemy_user_db_oauth: SQLAlchemyUserDatabase[UserDBOAuth], oauth_account1, oauth_account2, ): user = UserDBOAuth( phone="*****@*****.**", hashed_password=get_password_hash("guinevere"), oauth_accounts=[oauth_account1, oauth_account2], ) # Create user_db = await sqlalchemy_user_db_oauth.create(user) assert user_db.id is not None assert hasattr(user_db, "oauth_accounts") assert len(user_db.oauth_accounts) == 2 # Update user_db.oauth_accounts[0].access_token = "NEW_TOKEN" await sqlalchemy_user_db_oauth.update(user_db) # Get by id id_user = await sqlalchemy_user_db_oauth.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.oauth_accounts[0].access_token == "NEW_TOKEN" # Get by phone phone_user = await sqlalchemy_user_db_oauth.get_by_phone(str(user.phone)) assert phone_user is not None assert phone_user.id == user_db.id assert len(phone_user.oauth_accounts) == 2 # Get by OAuth account oauth_user = await sqlalchemy_user_db_oauth.get_by_oauth_account( oauth_account1.oauth_name, oauth_account1.account_id) assert oauth_user is not None assert oauth_user.id == user.id # Unknown OAuth account unknown_oauth_user = await sqlalchemy_user_db_oauth.get_by_oauth_account( "foo", "bar") assert unknown_oauth_user is None