def test_get_by_batchid(sqlite_session_factory): session = sqlite_session_factory() repo = repository.SqlAlchemyRepository(session) b1 = model.Batch(ref='b1', sku='sku1', qty=100, eta=None) b2 = model.Batch(ref='b2', sku='sku1', qty=100, eta=None) b3 = model.Batch(ref='b3', sku='sku2', qty=100, eta=None) p1 = model.Product(sku='sku1', batches=[b1, b2]) p2 = model.Product(sku='sku2', batches=[b3]) repo.add(p1) repo.add(p2) assert repo.get_by_batchid('b2') == p1 assert repo.get_by_batchid('b3') == p2
def add_batch(cmd: commands.CreateBatch, uow: unit_of_work.AbstractUnitOfWork): with uow: product = uow.products.get(sku=cmd.sku) if product is None: product = model.Product(cmd.sku, batches=[]) uow.products.add(product) product.batches.append(model.Batch(cmd.ref, cmd.sku, cmd.qty, cmd.eta)) uow.commit()