Ejemplo n.º 1
0
def test_find_products_in_category_id(db_session, product_service):
    # Given
    category_1 = Category(name='제과')
    category_2 = Category(name='아동')
    db_session.add_all([category_1, category_2])
    db_session.commit()

    for i in range(1, 6):
        db_session.add(
            Product(name=f'꼬북칩 {i}',
                    price=1000,
                    detail='바삭하고 맛이 있지요',
                    categories=[category_1, category_2]))

    for i in range(1, 21):
        db_session.add(
            Product(name=f'장난감 {i}',
                    price=2000,
                    detail='재미있지요',
                    categories=[category_2]))

    # When
    category_product = product_service.find_products_in_category_id(
        category_1.id, 0, 10)
    assert len(category_product.products) == 5
    category_product = product_service.find_products_in_category_id(
        category_2.id, 0, 10)
    assert len(category_product.products) == 10
    assert category_product.total_count == 25
def test_save_with_categories(db_session):
    # Given
    product = Product(name='꼬북칩', price=1000, detail='바삭하고 맛이 있지요')
    product.categories.append(Category(name='제과'))
    product.categories.append(Category(name='어린이'))
    # When
    SqlProductRepository(db_session).save(product)
    # Then
    result_product = db_session.query(Product).first()
    assert result_product.name == '꼬북칩'
    assert len(result_product.categories) == 2
    assert set([category.name for category in result_product.categories]) == \
        set(['제과', '어린이'])
Ejemplo n.º 3
0
def test_save(db_session):
    # Given
    category = Category(name='제과')
    # When
    SqlCategoryRepository(db_session).save(category)
    # Then
    assert db_session.query(Category).first().name == '제과'
Ejemplo n.º 4
0
def add_category(category_repository: CategoryRepository = Provide[Container.category_repository]):
    form = CategoryForm()
    if request.method == 'POST':
        if not form.validate_on_submit():
            raise InternalServerError('Invalid form')
        category = Category(name=request.form['name'])
        category_repository.save(category)
        return redirect(url_for('admin.categories'))
    return render_template('admin/add_category.html.j2', form=form)
Ejemplo n.º 5
0
def test_find_all(db_session):
    # Given
    for i in range(1, 6):
        db_session.add(Category(name=f'제과 {i}'))
    db_session.commit()

    # When
    result = SqlCategoryRepository(db_session).find_all()

    # Then
    assert len(result) == 5
Ejemplo n.º 6
0
def test_find_by_id(db_session):
    # Given
    for i in range(1, 6):
        db_session.add(Category(name=f'제과 {i}'))
    db_session.commit()

    # When
    result = SqlCategoryRepository(db_session).find_by_id(2)

    # Then
    assert result.id == 2
    assert result.name == '제과 2'
Ejemplo n.º 7
0
def test_remove_by_id(db_session):
    # Given
    category = Category(name='제과')
    db_session.add(category)
    db_session.commit()
    assert db_session.query(Category).count() == 1

    # When
    SqlCategoryRepository(db_session).remove_by_id(category.id)

    # Then
    assert db_session.query(Category).count() == 0
Ejemplo n.º 8
0
def test_product(db_session):
    product = Product(name='Pork 200g',
                      price=13000,
                      detail='port from korea :D')
    category = Category(name='Meat')
    db_session.add(category)
    db_session.commit()
    product.categories = [category]
    db_session.add(product)
    db_session.commit()

    get_product = db_session.query(Product).filter_by(id=product.id).first()
    assert get_product.categories[0].name == 'Meat'
def test_counts_by_category(db_session):
    repository = SqlProductRepository(db_session)
    category_1 = Category(name='제과')
    category_2 = Category(name='아동')
    db_session.add_all([category_1, category_2])
    db_session.commit()

    for i in range(1, 6):
        db_session.add(
            Product(name=f'꼬북칩 {i}',
                    price=1000,
                    detail='바삭하고 맛이 있지요',
                    categories=[category_1, category_2]))

    for i in range(1, 21):
        db_session.add(
            Product(name=f'장난감 {i}',
                    price=2000,
                    detail='재미있지요',
                    categories=[category_2]))

    # When
    assert repository.counts_by_category(category_1) == 5
    assert repository.counts_by_category(category_2) == 25
Ejemplo n.º 10
0
def test_category(db_session):
    category = Category(name='Meat')
    db_session.add(category)
    db_session.commit()
Ejemplo n.º 11
0
def category(db_session):
    _category = Category(name='과자류')
    db_session.add(_category)
    return _category
Ejemplo n.º 12
0
def pre_data_db_session(db_session, order):
    user1 = User(username='******', password='******',
                 blocked=False, is_admin=False)
    user2 = User(username='******', password='******',
                 blocked=False, is_admin=False)
    admin = User(username='******', password='******', blocked=False, is_admin=True)
    # TODO: add permission
    # insert into member_authorities values ('user1', 'ROLE_USER');
    # insert into member_authorities values ('user2', 'ROLE_USER');
    # insert into member_authorities values ('admin', 'ROLE_ADMIN');
    db_session.add_all([user1, user2, admin])

    category1 = Category(name='전자제품')
    category2 = Category(name='필기구')
    db_session.add_all([category1, category2])

    product1 = Product(
        name='라즈베리파이3 모델B', price=56000, detail='모델B')
    product1.categories.append(category1)
    product2 = Product(
        name='어프로치 휴대용 화이트보드 세트', price=11920, detail='화이트보드')
    product2.categories.append(category2)
    product3 = Product(
        name='볼펜 겸용 터치펜', price=9000, detail='볼펜과 터치펜을 하나로!')
    product3.categories.append(category1)
    product3.categories.append(category2)
    db_session.add_all([product1, product2, product3])

    shipping_info = ShippingInfo(
        receiver=Receiver('사용자1', '010-1234-5678'),
        address=Address('123456', '서울시', '관악구'),
        message='메시지')
    order1 = Order(
        orderer=user1, shipping_info=shipping_info,
        state=OrderState.PREPARING,
        order_date=datetime.fromisoformat('2016-01-01 15:30:00')
    )
    order1.order_lines.append(
        OrderLine(product=product1, quantity=2))
    order1.order_lines.append(
        OrderLine(product=product2, quantity=1))

    shipping_info = ShippingInfo(
        receiver=Receiver('사용자1', '010-1234-5678'),
        address=Address('123456', '서울시', '관악구'),
        message='메시지')
    order2 = Order(
        orderer=user1, shipping_info=shipping_info,
        state=OrderState.PREPARING,
        order_date=datetime.fromisoformat('2016-01-02 09:18:21')
    )
    order2.order_lines.append(
        OrderLine(product=product1, quantity=5))

    shipping_info = ShippingInfo(
        receiver=Receiver('사용자1', '010-1234-5678'),
        address=Address('123456', '서울시', '관악구'),
        message='메시지')
    order3 = Order(
        orderer=user2, shipping_info=shipping_info,
        state=OrderState.SHIPPED,
        order_date=datetime.fromisoformat('2016-01-03 09:00:00')
    )
    order3.order_lines.append(
        OrderLine(product=product1, quantity=5))

    db_session.add_all([order1, order2, order3])
    return db_session