Пример #1
0
async def register_user(user: RegisterUser):
    if data.get_user(user.username):
        raise HTTPException(
            status_code=status.HTTP_409_CONFLICT,
            detail="User with same username already exists",
        )
    if data.get_user_by_email(user.email):
        raise HTTPException(
            status_code=status.HTTP_409_CONFLICT,
            detail="This email already has an account",
        )
    data.add_user(user.username, user.email, get_hash(user.password))
    return_user = data.get_user(user.username)
    if not return_user:
        raise HTTPException(
            status_code=status.HTTP_404_NOT_FOUND,
            detail="Item not found, failed to register",
        )
    access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
    confirm_token = create_access_token(data={"sub": user[EMAIL_KEY]},
                                        expires_delta=access_token_expires)
    backend = os.getenv("BACKEND_URL") or config.CONFIG.backend
    await send_email(
        user[EMAIL_KEY],
        {
            "username": user[USERNAME_KEY],
            "confirm_url": f"{backend}/confirm/{confirm_token}",
        },
    )
    return return_user
Пример #2
0
async def update_user_me(user: UpdateUser,
                         current_user: User = Depends(current_user_is_active)):
    if data.get_user(user.username):
        raise HTTPException(
            status_code=status.HTTP_409_CONFLICT,
            detail="User with same username already exists",
        )
    db_user = data.get_user(current_user[USERNAME_KEY])
    data.update_user(db_user["id"], user)
    return data.get_user(user.username or current_user[USERNAME_KEY])
Пример #3
0
def test_log_in_with_valid_user(app, user):
    app.main_page.login_ok(user)
    # if is_account_blocked() is True:
    #     account_unblock(user)
    sleep(time_to_present_result)
    app.make_screenshot()
    assert app.main_page.get_username() == users.get_user(user)['login']
Пример #4
0
def test_log_in_with_invalid_user(app, user):
    app.main_page.login_err(user)
    sleep(time_to_present_result)
    app.make_screenshot()
    assert app.main_page.is_unique_element_displayed(
        *getattr(MainPageLocators,
                 users.get_user(user)["message"]))
Пример #5
0
def authenticate(username: str, password: str):
    user = data.get_user(username)
    if not user:
        return False
    if not verify(password, user[PASSWORD_KEY]):
        return False
    return user
Пример #6
0
async def unregister_users_me(
        current_user: UserInDB = Depends(get_current_user)):
    data.remove_user(current_user[USERNAME_KEY], current_user[EMAIL_KEY],
                     current_user[PASSWORD_KEY])
    if data.get_user(current_user[USERNAME_KEY]):
        raise HTTPException(status_code=status.HTTP_417_EXPECTATION_FAILED,
                            detail="Failed to delete")
    return {"msg": "deleted"}
Пример #7
0
def test_sign_up_with_invalid_user(app, user):
    app.main_page.signup(user)
    sleep(time_to_present_result)
    sleep(time_to_enter_capcha)
    app.make_screenshot()
    assert app.main_page.is_unique_element_displayed(
        *getattr(MainPageLocators,
                 users.get_user(user)["message"]))
Пример #8
0
 def login_err(self, user):
     # with allure.step("Логинимся"):
     self.find_displayed_element(*self.locator.LOGIN_BTN).click()
     static_user = users.get_user(user)
     self.find_displayed_element(*self.locator.LOGIN_1).send_keys(static_user['login'])
     self.find_displayed_element(*self.locator.PASSWORD_1).send_keys(static_user['password'])
     # (keyring.get_password("system", static_user['login']))
     self.click_submit_button_1()
Пример #9
0
def test_sign_up_with_invalid_login(app, user):
    app.main_page.click_signup_button()
    app.main_page.enter_email(user)
    app.main_page.enter_login_2(user)
    sleep(time_to_present_result)
    app.make_screenshot()
    assert app.main_page.is_unique_element_displayed(
        *getattr(MainPageLocators,
                 users.get_user(user)["message"]))

    app.main_page.enter_password_2(user)
    sleep(time_to_enter_capcha)
    app.main_page.enter_captcha_2(user)
    app.main_page.click_submit_button_2()
    sleep(time_to_present_result)
    app.make_screenshot()
    assert app.main_page.is_unique_element_displayed(
        *getattr(MainPageLocators,
                 users.get_user(user)["message_add"]))
Пример #10
0
 def signup(self, user):
     # with allure.step("Заполняем данные нового пользователя"):
     self.find_displayed_element(*self.locator.SIGNUP_BTN).click()
     static_user = users.get_user(user)
     self.find_displayed_element(*self.locator.EMAIL).send_keys(static_user['email'])
     self.find_displayed_element(*self.locator.LOGIN_2).send_keys(static_user['login'])
     self.find_displayed_element(*self.locator.PASSWORD_2).send_keys(static_user['password'])
     self.click_RUB_currency()  # Выбор РУБ для РС если не работает регистрация на лире
     self.find_displayed_element(*self.locator.CAPTCHA_2).send_keys(static_user['captcha'])
     self.click_submit_button_2()
     return static_user
Пример #11
0
async def get_current_user(token: str = Depends(oauth2_scheme)):
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": "Bearer"},
    )
    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        username: str = payload.get("sub")
        if username is None:
            raise credentials_exception
        token_data = TokenData(username=username)
    except JWTError:
        raise credentials_exception
    user = data.get_user(username=token_data.username)
    if user is None:
        raise credentials_exception
    return user
Пример #12
0
 def enter_captcha_2(self, user):
     self.find_displayed_element(*self.locator.CAPTCHA_2).send_keys(users.get_user(user)["captcha"])
Пример #13
0
 def enter_password_2(self, user):
     self.find_displayed_element(*self.locator.PASSWORD_2).send_keys(users.get_user(user)["password"])
Пример #14
0
 def enter_login_2(self, user):
     self.find_displayed_element(*self.locator.LOGIN_2).send_keys(users.get_user(user)["login"])
Пример #15
0
 def enter_email(self, user):
     self.find_displayed_element(*self.locator.EMAIL).send_keys(users.get_user(user)["email"])