Ejemplo n.º 1
0
def test_sell_list_constraint_success():
    p = product_factory()
    list_constraint = list_constraint_factory()
    entry = list_constraint_entry_factory(list_constraint=list_constraint,
                                          redeemed=False)
    ListConstraintProduct.objects.create(
        product=p,
        constraint=entry.list,
    )
    options = {'list_{}'.format(entry.list.pk): str(entry.identifier)}
    pos = sell_ticket(product=p.id, **options)
    assert pos.listentry == entry
Ejemplo n.º 2
0
def test_preorder_list_constraint_success():
    pp = preorder_position_factory(paid=True)
    list_constraint = list_constraint_factory()
    entry = list_constraint_entry_factory(list_constraint=list_constraint,
                                          redeemed=False)
    ListConstraintProduct.objects.create(
        product=pp.product,
        constraint=entry.list,
    )
    options = {'list_{}'.format(entry.list.pk): str(entry.identifier)}
    pos = redeem_preorder_ticket(secret=pp.secret, **options)
    assert pos.listentry == entry
Ejemplo n.º 3
0
def test_sell_list_constraint_used():
    p = product_factory()
    list_constraint = list_constraint_factory()
    entry = list_constraint_entry_factory(list_constraint=list_constraint,
                                          redeemed=True)
    ListConstraintProduct.objects.create(
        product=p,
        constraint=entry.list,
    )
    options = {'list_{}'.format(entry.list.pk): str(entry.identifier)}
    with pytest.raises(FlowError) as excinfo:
        sell_ticket(product=p.id, **options)
    assert excinfo.value.message == 'This list entry has already been used.'
    assert excinfo.value.type == 'input'
    assert excinfo.value.missing_field == 'list_{}'.format(list_constraint.pk)