Projet

Général

Profil

0001-lingo-do-not-add-a-basket-item-from-a-remote-regie-2.patch

Lauréline Guérin, 23 octobre 2019 11:42

Télécharger (2,68 ko)

Voir les différences:

Subject: [PATCH] lingo: do not add a basket item from a remote regie (#27854)

 combo/apps/lingo/views.py   |  3 +++
 tests/test_lingo_payment.py | 30 ++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)
combo/apps/lingo/views.py
168 168
                # the database...
169 169
                item.regie = Regie.objects.all()[0]
170 170

  
171
        if item.regie.is_remote():
172
            return HttpResponseBadRequest('blah.')
173

  
171 174
        if request.GET.get('cancellable') == 'no':
172 175
            item.user_cancellable = False
173 176

  
tests/test_lingo_payment.py
64 64
        regie.save()
65 65
    return regie
66 66

  
67

  
68
@pytest.fixture
69
def remote_regie():
70
    try:
71
        payment_backend = PaymentBackend.objects.get(slug='test1')
72
    except PaymentBackend.DoesNotExist:
73
        payment_backend = PaymentBackend.objects.create(
74
            label='test1', slug='test1', service='dummy', service_options={'siret': '1234'})
75
    try:
76
        regie = Regie.objects.get(slug='remote')
77
    except Regie.DoesNotExist:
78
        regie = Regie()
79
        regie.label = 'Remote'
80
        regie.slug = 'remote'
81
        regie.description = 'remote'
82
        regie.payment_min_amount = Decimal(2.0)
83
        regie.payment_backend = payment_backend
84
        regie.webservice_url = 'http://example.org/regie' # is_remote
85
        regie.save()
86
    return regie
87

  
88

  
67 89
@pytest.fixture
68 90
def basket_page():
69 91
    page = Page(title='xxx', slug='test_basket_cell', template_name='standard')
......
344 366
    assert 'Bad format for capture date, it should be yyyy-mm-dd.' in resp.text
345 367

  
346 368

  
369
def test_add_basket_item_with_remote_regie(app, user, remote_regie):
370
    data = {'amount': 10, 'display_name': 'test item'}
371
    url = '%s?email=%s' % (reverse('api-add-basket-item'), user.email)
372
    url = sign_url(url, settings.LINGO_API_SIGN_KEY)
373
    resp = app.post_json(url, params=data, status=400)
374
    assert 'blah.' in resp.text
375

  
376

  
347 377
def test_cant_pay_if_different_capture_date(app, basket_page, regie, user):
348 378
    capture1 = (timezone.now() + timedelta(days=1)).date()
349 379
    capture2 = (timezone.now() + timedelta(days=2)).date()
350
-