import pathlib current = pathlib.Path(__file__).parent root = current.parent import sys sys.path.append(str(root)) import assets import assets import sqlmodel def drop_db() -> None: db = pathlib.Path("./008-application_secret.db") if db.is_file(): db.unlink() drop_db() connection = sqlmodel.create_engine("sqlite:///008-application_secret.db") user_app = assets.application_user(connection) secret_app = assets.application_secret(connection) crypter_app = assets.application_crypter(connection) sqlmodel.SQLModel.metadata.create_all(connection) user_app.register("test", "password") apikey = user_app.login("test", "password")["apikey"] print("Created test user, apikey: " + apikey) coded = crypter_app.encrypt(apikey, "password", "SAMPLE")["crypted"] print("Encrypted content: " + coded) secret_app.create(apikey, "sample", "https://xyz.com", coded) print() print("Created secret.") print("Result:") coded_result = secret_app.get(apikey, "sample")["coded"] print(coded_result) print() print("Decoding:") print(crypter_app.decrypt(apikey, "password", coded_result)) print() print("Search by domain:") print(secret_app.domain_search(apikey, "xyz.com")) print() print("Search by name:") print(secret_app.name_search(apikey, "sam")) print() print("Name in use: ") print(secret_app.name_in_use(apikey, "sample")) print() print("Name not in use:") print(secret_app.name_in_use(apikey, "not_name")) print() print("Updating...") print(secret_app.update( apikey, "sample", new_name = "new_sample", domain = "https:abc.pl" )) print("After update:") print(secret_app.get(apikey, "new_sample")) print() print("Deleting...") print(secret_app.drop(apikey, "new_sample")) print("After delete:") print(secret_app.get(apikey, "new_sample")) drop_db()