| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- 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("./009-reservation.db")
- if db.is_file():
- db.unlink()
- drop_database()
- connection = sqlmodel.create_engine("sqlite:///009-reservation.db")
- sqlmodel.SQLModel.metadata.create_all(connection)
- builder = assets.product_factory()
- builder.name = "Sample name"
- builder.author = "Simple UwU Artist"
- builder.description = "This is simple description"
- builder.barcode = "123456789012"
- builder.stock_count = 10
- product = builder.result
- print("Create first product:")
- print(product)
- print()
- with assets.product_loader(connection) as loader:
- print("Inserting product...")
- loader.store(product)
- print("Inserted:")
- print(product)
- print()
- with assets.product_loader(connection) as loader:
- print("Loading product to make reservation...")
- target = loader.get_by_barcode("123456789012")
- print("Loaded: ")
- print(target)
- before = target.on_stock
- reservation = assets \
- .reservation_factory() \
- .target(target) \
- .email("[email protected]") \
- .result()
- print(reservation)
- print()
- with assets.reservation_loader(connection) as loader:
- print("Inserting it into database...")
- loader.store(reservation)
- print(reservation)
- with assets.product_loader(connection) as loader:
- print("Loading product to make reservation...")
- target = loader.get_by_barcode("123456789012")
- print("Loaded: ")
- print(target)
- reservation = assets \
- .reservation_factory() \
- .target(target) \
- .email("[email protected]") \
- .result()
- print(reservation)
- print()
- with assets.reservation_loader(connection) as loader:
- print("Inserting it into database...")
- loader.store(reservation)
- print(reservation)
- with assets.product_loader(connection) as loader:
- print("Loading product to check that on stock calc work...")
- target = loader.get_by_barcode("123456789012")
- after = target.on_stock
-
- print("Before: " + str(before))
- print("After: " + str(after))
- print()
- before = after
- with assets.reservation_loader(connection) as loader:
- print("Loading reservation for product...")
-
- collection = loader \
- .get_by_target(target) \
- .by_email("[email protected]") \
- .results()
-
- if len(collection) != 1:
- print("Fail, collection:")
- print(collection)
- raise Exception("Collection is not propertly filtered.")
-
- reservation = collection[0]
- print("Loaded.")
- print(reservation)
- print()
-
- print("Removing it from database...")
- loader.drop(reservation)
- print("Removed.")
- print()
- with assets.product_loader(connection) as loader:
- print("Loading product to check that on stock calc work...")
- target = loader.get_by_barcode("123456789012")
- after = target.on_stock
-
- print("Before: " + str(before))
- print("After: " + str(after))
- print()
- print("Trying to drop product...")
- loader.drop(target)
- print("Removed.")
- drop_database()
|