| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- import pathlib
- current = pathlib.Path(__file__).parent
- root = current.parent
- import sys
- sys.path.append(str(root))
- import assets
- import sqlmodel
- def drop_database() -> None:
- db = pathlib.Path("./004-test.db")
- if db.is_file():
- db.unlink()
- drop_database()
- connection = sqlmodel.create_engine("sqlite:///004-test.db")
- sqlmodel.SQLModel.metadata.create_all(connection)
- user_builder = assets.user_builder()
- user_builder.nick = "test"
- user_builder.password = "qwerty"
- sample_user = user_builder.result
- with assets.user_loader(connection) as loader:
- loader.register(sample_user)
- secret_builder = assets.secret_builder()
- secret_builder.clear()
- secret_builder.name = "secret1"
- secret_builder.owner = sample_user
- secret_builder.domain = "http://secret1"
- secret_builder.crypt("qwerty", "SAMPLE_1_PSK")
- secret_1 = secret_builder.result
- secret_builder.clear()
- secret_builder.name = "secret2"
- secret_builder.owner = sample_user
- secret_builder.domain = "https://secret2"
- secret_builder.crypt("qwerty", "SAMPLE_2_PSK")
- secret_2 = secret_builder.result
- print(sample_user)
- print(secret_1)
- print(secret_2)
- print("Inserting into database")
- with assets.secret_loader(connection, sample_user) as loader:
- loader.append(secret_1)
- loader.append(secret_2)
- print()
- print("Loading secrets by name:")
- with assets.secret_loader(connection, sample_user) as loader:
- load_1 = loader.load_by_name("secret1")
-
- print("Loaded secret 1 from database:")
- print(load_1)
- load_2 = loader.load_by_name("secret2")
- print("Loaded secret 2 from database:")
- print(load_2)
- print()
- print("Loading secrets by domain:")
- with assets.secret_loader(connection, sample_user) as loader:
- print("Results for domain \"secret\": ")
- for item in loader.search_for_domain("secret"):
- print(item)
- print("Results for domain \"not_exists\":")
- for item in loader.search_for_domain("not_exists"):
- print(item)
- print()
- print("Modify secrets:")
- with assets.secret_loader(connection, sample_user) as loader:
- loaded = loader.load_by_name("secret1")
- print("Before:")
- print(loaded)
- builder = assets.secret_builder(loaded)
- builder.domain = "https://other.com"
- builder.crypt("qwerty", "sample_example")
- loader.update(builder.result)
- print("After:")
- print(loader.load_by_name("secret1"))
- print()
- print("Delete secrets:")
- with assets.secret_loader(connection, sample_user) as loader:
- loaded = loader.load_by_name("secret1")
- loader.drop(loaded)
- print("After:")
- print(loader.load_by_name("secret1"))
- print()
- print("Clear:")
- with assets.secret_loader(connection, sample_user) as loader:
- print("Before:")
- print(loader.load_by_name("secret2"))
- loader.clear()
- print("After:")
- print(loader.load_by_name("secret2"))
- drop_database()
|