def get_account(abort_if_invalid=True, username="") -> Account: """Gets credentials from the header's 'Authorization' key""" if abort_if_invalid: if request.authorization is None: abort(403, "No credentials provided") username = request.authorization['username'] password = request.authorization['password'] if username == "" or password == "": abort( 403, "No credentials provided. Please ensure you have a registered account" ) account = Account.find_account(username, password) if account is None: abort( 403, "Invalid account credentials. Please ensure you have a valid registered account" ) else: account = Account.find_account(username) return account
def test_create_package(db_session): account = Account.find_account(user1.email, "password") account.packages.append(pkg1) account.packages.append(pkg2) account.save() account = Account.find_account(user1.email, "password") assert len(account.to_dict(True)['packages']) == 2
def create_account(): data = request.get_json() account = Account(**data) if Account.find_account(data['username']) is not None: abort(400, f"Username '{data['username']}' is already taken") elif Account.find_account(data['email']) is not None: abort(400, f"Email '{data['email']}' is already taken") try: return account.save().to_dict() except Exception as e: current_app.logger.error(e) abort(400, "could not create account")
def validate_account(): error_message = "could not find account or password is incorrect" data = request.get_json() account = Account.find_account(data['username'], data['password']) if account is None: abort(404, error_message) return account.to_dict()
def delete_account(): data = request.get_json() account = Account.find_account(data['username'], data['password']) if account is None: abort(401, "invalid account credentials") folder = Path(current_app.config['PACKAGE_FOLDER']) for p in account.packages: pkg_folder = folder.joinpath(p.name) if pkg_folder.exists(): rmtree(pkg_folder, True) account.delete() return "", 200
def test_update_account(db_session): account = Account.find_account(user2.email, "password") assert account is not None account.update("password", "*****@*****.**") assert Account.find_account("*****@*****.**", "password") is not None
def test_find_account(db_session, username_or_email, password, is_none): account = Account.find_account(username_or_email, password) if is_none: assert account is None else: assert account is not None
def check_user_or_email_exists(user_or_email): if Account.find_account(user_or_email) is None: return "", 404 else: return "", 200