import pathlib current = pathlib.Path(__file__).parent root = current.parent import sys sys.path.append(str(root)) import assets import sqlmodel def drop_db() -> None: db = pathlib.Path("./006-application.db") if db.is_file(): db.unlink() drop_db() connection = sqlmodel.create_engine("sqlite:///006-application.db") app = assets.application_user(connection) sqlmodel.SQLModel.metadata.create_all(connection) print("Register.") print("With success:") print(app.register("user1", "password")) print(app.register("user2", "password")) print("With fail:") print(app.register("user2", "password")) print(app.register("user3", "pas")) print(app.register("user3", "paswword\"")) print() print("Login.") print("With success:") print(app.login("user1", "password")) print(app.login("user2", "password")) print("With fail:") print(app.login("user3", "password")) print(app.login("user1", "password_bad")) print() test_apikey = app.login("user1", "password")["apikey"] print("Get user.") print("With success:") print(app.get(test_apikey)) print("With fail:") print(app.get("not exists")) print("Unregister.") print("Registering new user...") to_drop_apikey = app.register("user_to_drop", "password1")["apikey"] print("With fail:") print(app.unregister("jeriojeroi", "password1")) print(app.unregister(to_drop_apikey, "bad_password")) print("With success:") print(app.unregister(to_drop_apikey, "password1")) print() print("Apikey refresh.") print("With success:") print(app.apikey_refresh(test_apikey)) print("With fail (old apikey):") print(app.apikey_refresh(test_apikey)) test_apikey = app.login("user1", "password")["apikey"] print() print("Change password.") print("With success:") print(app.change_password(test_apikey, "password", "password1")) print(app.change_password(test_apikey, "password1", "password")) print("With fail:") print(app.change_password("fjljsdkl", "password1", "password")) print(app.change_password(test_apikey, "password1", "password")) print(app.change_password(test_apikey, "password1", "password\'")) print() print("Change nick.") print("With success:") print(app.change_nick(test_apikey, "test_user")) print("Result:") print(app.get(test_apikey)) print("With fail:") print(app.change_nick(test_apikey, "SAMpl\'")) print(app.change_nick("jjsfdfjskl", "nick1")) print(app.change_nick(test_apikey, "user2")) drop_db()