Ejemplo n.º 1
0
def edit_bookmark(id):
    session = get_session()
    repo = repository.SqlAlchemyRepository(session)
    content = request.get_json()
    date_added = datetime.now(timezone.utc)
    services.edit(id, request.json["title"], request.json["url"],
                  request.json["notes"], date_added, repo, session)
    return jsonify({'message': 'Barky App'})
Ejemplo n.º 2
0
def test_repository_can_save_a_batch(session: Session):
    batch = model.Batch("batch1", "RUSTY-SOAPDISH", 100, eta=None)

    repo = repository.SqlAlchemyRepository(session)
    repo.add(batch)
    session.commit()
    rows = session.execute(
        'SELECT reference, sku, _purchased_quantity, eta FROM "batches"')
    assert list(rows) == [("batch1", "RUSTY-SOAPDISH", 100, None)]
Ejemplo n.º 3
0
def get_bookmark(id):
    session = get_session()
    repo = repository.SqlAlchemyRepository(session)
    bookmark = repo.get(id)
    return {
        'id': bookmark.id,
        'title': bookmark.title,
        'url': bookmark.url,
        'notes': bookmark.notes,
        'date_added': bookmark.date_added
    }
Ejemplo n.º 4
0
def test_repository_can_save_a_bookmark(session):
    bookmark = model.Bookmark(6, "google6", "https://www.google6.com/",
                              "google6 website", "2021-03-24 03:56:33.961691")

    repo = repository.SqlAlchemyRepository(session)
    repo.add(bookmark)
    session.commit()

    rows = session.execute(
        'SELECT id, title, url, notes, date_added FROM "bookmarks"')
    assert list(rows) == [(6, "google6", "https://www.google6.com/",
                           "google6 website", "2021-03-24 03:56:33.961691")]
Ejemplo n.º 5
0
def add_bookmark():
    session = get_session()
    repo = repository.SqlAlchemyRepository(session)
    content = request.get_json()
    date_added = datetime.now(timezone.utc)
    id = str(uuid.uuid4())

    bookmark = model.Bookmark(id, request.json["title"], request.json["url"],
                              request.json["notes"], date_added)

    bookmarkref = services.add(bookmark, repo, session)
    return jsonify({'message': 'Barky App'})
Ejemplo n.º 6
0
def test_repository_can_save_a_product(session):
    product = model.Product("product1", "PALAK-LEAF", 100, 10, "OM PRODUCES",
                            1.45)

    repo = repository.SqlAlchemyRepository(session)
    repo.add(product)
    session.commit()

    rows = session.execute(
        'SELECT reference, sku, _purchased_quantity, maxAllowedPurchaseQty, brand, price FROM "products"'
    )
    assert list(rows) == [("product1", "PALAK-LEAF", 100, 10, "OM PRODUCES",
                           1.45)]
def test_repository_can_save_a_batch(session):
    batch = model.Batch("batch1", "RUSTY-SOAPDISH", 100, eta=None)

    repo = repository.SqlAlchemyRepository(session)
    repo.add(batch)  # repo.add() is the method under test here.
    session.commit(
    )  # keep the .commit() outside of the repository and make it the responsibility of the caller.

    rows = list(
        session.execute(
            'SELECT reference, sku, _purchased_quantity, eta FROM "batches"'  # use the raw SQL to verify that the right data has been saved.
        ))
    assert rows == [("batch1", "RUSTY-SOAPDISH", 100, None)]
Ejemplo n.º 8
0
def allocate_endpoint():
    session = get_session()
    repo = repository.SqlAlchemyRepository(session)
    line = model.OrderLine(
        request.json['orderid'],
        request.json['sku'],
        request.json['qty'],
    )
    try:
        batchref = services.allocate(line, repo, session)
    except (model.OutOfStock, services.InvalidSku) as e:
        return jsonify({'message': str(e)}), 400

    return jsonify({'batchref': batchref}), 201
Ejemplo n.º 9
0
def list_bookmark():
    session = get_session()
    repo = repository.SqlAlchemyRepository(session)
    bookmarks = repo.list()
    bookmarkList = []
    for bookmark in bookmarks:
        bookmarkObject = {
            'id': bookmark.id,
            'title': bookmark.title,
            'url': bookmark.url,
            'notes': bookmark.notes,
            'date_added': bookmark.date_added
        }
        bookmarkList.append(bookmarkObject)
    return jsonify(bookmarkList)
Ejemplo n.º 10
0
def add_endpoint():
    session = get_session()
    repo = repository.SqlAlchemyRepository(session)
    item = model.CartItem(
        request.json["itemid"],
        request.json["sku"],
        request.json["qty"],
    )

    try:
        productref = services.add(item, repo, session)
    except (model.OutOfStock, services.InvalidSku) as e:
        return {"message": str(e)}, 400

    return {"productref": productref}, 201
Ejemplo n.º 11
0
def test_repository_can_retrieve_a_batch_with_allocations(session):
    orderline_id = insert_order_line(session)
    batch1_id = insert_batch(session, "batch1")
    insert_batch(session, "batch2")
    insert_allocation(session, orderline_id, batch1_id)

    repo = repository.SqlAlchemyRepository(session)
    retrieved = repo.get("batch1")

    expected = model.Batch("batch1", "GENERIC-SOFA", 100, eta=None)
    assert retrieved == expected  # Batch.__eq__ only compares reference
    assert retrieved.sku == expected.sku
    assert retrieved._purchased_quantity == expected._purchased_quantity
    assert retrieved._allocations == {
        model.OrderLine("order1", "GENERIC-SOFA", 12),
    }
Ejemplo n.º 12
0
def test_repository_can_retrieve_a_product_with_items(session):
    cartitem_id = insert_cart_item(session)
    product1_id = insert_product(session, "product1")
    insert_product(session, "product2")
    insert_item(session, cartitem_id, product1_id)

    repo = repository.SqlAlchemyRepository(session)
    retrieved = repo.get("product1")

    expected = model.Product("product1", "EASTERN-MASALA", 100, 10, "EASTERN",
                             1.65)
    assert retrieved == expected  # Product.__eq__ only compares reference
    assert retrieved.sku == expected.sku
    assert retrieved._purchased_quantity == expected._purchased_quantity
    assert retrieved._items == {
        model.CartItem("item1", "EASTERN-MASALA", 5),
    }
def test_repository_can_retrieve_a_batch_with_allocations(session):
    orderline_id = insert_order_line(session)
    batch1_id = insert_batch(session, "batch1")
    insert_batch(session, "batch2")
    insert_allocation(session, orderline_id, batch1_id)

    repo = repository.SqlAlchemyRepository(session)
    retrieved = repo.get("batch1")

    expected = model.Batch("batch1", "GENERIC-SOFA", 100, eta=None)
    # checks that the types match, and that the reference is the same
    assert retrieved == expected  # Batch.__eq__ only compares reference
    # explicitly check on its major attributes, including ._allocations, which is a Python set of OrderLine value objects.
    assert retrieved.sku == expected.sku
    assert retrieved._purchased_quantity == expected._purchased_quantity
    assert retrieved._allocations == {
        model.OrderLine("order1", "GENERIC-SOFA", 12),
    }
Ejemplo n.º 14
0
def delete_bookmark(id):
    session = get_session()
    repo = repository.SqlAlchemyRepository(session)
    message = services.delete(id, repo, session)
    return message