Exemple #1
0
def add_batch(command: commands.CreateBatch, uow: unit_of_work.AbstractUnitOfWork):
    with uow:
        product = uow.products.get(sku=command.sku)
        if product is None:
            product = model.Product(command.sku, batches=[])
            uow.products.add(product)

        product.batches.append(model.Batch(command.ref, command.sku, command.qty, command.eta))
        uow.commit()
Exemple #2
0
def test_uow_can_save_product_and_batch_and_allocate_it(session_factory):

    uow = unit_of_work.ProductSqlAlchemyUnitOfWork(session_factory)
    session = session_factory()
    sku = 'HIPSTER-WORKBENCH3'
    with uow:
        product = model.Product(sku, [model.Batch('b3', sku, 100, None)])
        uow.products.add(product)
        # product.batches.append()
        prodcut2 = uow.products.get_by_batchref('b3')
        product = uow.products.get(sku=sku)
        line = model.OrderLine('o3', sku, 10)
        product.allocate(line)
        uow.commit()
        batchref = get_allocated_batch_ref(session, 'o3', sku)
        assert batchref == 'b3'
Exemple #3
0
 def for_batch(ref, sku, qty, eta=None):
     return FakeRepository(model.Batch(ref, sku, qty, eta))
Exemple #4
0
 def for_batch(ref, sku, qty, eta=None):
     return FakeProductRepository(
         [model.Product(sku, batches=[model.Batch(ref, sku, qty, eta)])])
Exemple #5
0
def insert_batch(session, ref, sku, qty, eta):
    session.execute('INSERT INTO batches (reference, sku, _purchased_quantity, eta)'
                    ' VALUES (:ref, :sku, :qty, :eta)',
                    dict(ref=ref, sku=sku, qty=qty, eta=eta))

    return model.Batch(ref, sku, qty, eta)