0001-lingo-return-HttpResponseBadRequest-instead-of-Excep.patch
combo/apps/lingo/views.py | ||
---|---|---|
138 | 138 | |
139 | 139 |
if not 'amount' in request.GET and not 'amount' in request_body and \ |
140 | 140 |
not 'amount' in extra: |
141 |
raise Exception('missing amount parameter')
|
|
141 |
return HttpResponseBadRequest('missing amount parameter')
|
|
142 | 142 | |
143 | 143 |
item = BasketItem(amount=0) |
144 | 144 |
try: |
... | ... | |
171 | 171 |
else: |
172 | 172 |
user = None |
173 | 173 |
except User.DoesNotExist: |
174 |
raise Exception('unknown user')
|
|
174 |
return HttpResponseBadRequest('unknown user')
|
|
175 | 175 | |
176 | 176 |
item.user = user |
177 | 177 |
if request.GET.get('regie_id'): |
... | ... | |
240 | 240 |
request_body = json.loads(force_text(self.request.body)) |
241 | 241 | |
242 | 242 |
if not 'basket_item_id' in request_body: |
243 |
raise Exception('missing basket_item_id parameter')
|
|
243 |
return HttpResponseBadRequest('missing basket_item_id parameter')
|
|
244 | 244 | |
245 | 245 |
try: |
246 | 246 |
if request.GET.get('NameId'): |
... | ... | |
250 | 250 |
elif request.GET.get('email'): |
251 | 251 |
user = User.objects.get(email=request.GET.get('email')) |
252 | 252 |
else: |
253 |
raise Exception('no user specified')
|
|
253 |
return HttpResponseBadRequest('no user specified')
|
|
254 | 254 |
except User.DoesNotExist: |
255 |
raise Exception('unknown user') |
|
255 |
return HttpResponseBadRequest('unknown user') |
|
256 | ||
257 |
try: |
|
258 |
item = BasketItem.objects.get(id=request_body.get('basket_item_id'), |
|
259 |
user=user, cancellation_date__isnull=True) |
|
260 |
except BasketItem.DoesNotExist: |
|
261 |
return HttpResponseBadRequest('unknown basket item') |
|
256 | 262 | |
257 |
item = BasketItem.objects.get(id=request_body.get('basket_item_id'), |
|
258 |
user=user, cancellation_date__isnull=True) |
|
259 | 263 |
notify_origin = bool(request_body.get('notify', 'false') == 'true') |
260 | 264 |
item.notify_cancellation(notify_origin=notify_origin) |
261 | 265 | |
... | ... | |
520 | 524 | |
521 | 525 |
class PaymentView(View): |
522 | 526 |
def handle_response(self, request, backend_response, **kwargs): |
527 |
assert 'regie_pk' in kwargs or 'payment_backend_pk' in kwargs |
|
523 | 528 |
if 'regie_pk' in kwargs: |
524 | 529 |
payment_backend = Regie.objects.get(id=kwargs['regie_pk']).payment_backend |
525 |
elif 'payment_backend_pk' in kwargs: |
|
526 |
payment_backend = PaymentBackend.objects.get(id=kwargs['payment_backend_pk']) |
|
527 | 530 |
else: |
528 |
raise Exception("A payment backend or regie primary key must be specified")
|
|
531 |
payment_backend = PaymentBackend.objects.get(id=kwargs['payment_backend_pk'])
|
|
529 | 532 | |
530 | 533 |
payment = get_eopayment_object(request, payment_backend) |
531 | 534 |
logger = logging.getLogger(__name__) |
tests/test_lingo_payment.py | ||
---|---|---|
251 | 251 | |
252 | 252 |
user_email = 'foo@example.com' |
253 | 253 |
User.objects.get_or_create(email=user_email) |
254 |
amount = 42 |
|
255 |
data = {'amount': amount, 'display_name': 'test amount',
|
|
254 | ||
255 |
data = {'display_name': 'test amount', |
|
256 | 256 |
'url': 'http://example.com'} |
257 |
url = '%s?email=%s&orig=wcs' % (reverse('api-add-basket-item'), user_email) |
|
258 |
url = sign_url(url, key) |
|
259 |
resp = app.post_json(url, params=data, status=400) |
|
260 |
assert 'missing amount parameter' in resp.text |
|
261 | ||
262 |
amount = 42 |
|
263 |
data['amount'] = amount |
|
264 |
url = '%s?email=%s&orig=wcs' % (reverse('api-add-basket-item'), 'unknown@example.com') |
|
265 |
url = sign_url(url, key) |
|
266 |
resp = app.post_json(url, params=data, status=400) |
|
267 |
assert 'unknown user' in resp.text |
|
268 | ||
257 | 269 |
url = '%s?email=%s&orig=wcs' % (reverse('api-add-basket-item'), user_email) |
258 | 270 |
url = sign_url(url, key) |
259 | 271 |
resp = app.post_json(url, params=data) |
... | ... | |
527 | 539 |
assert BasketItem.objects.filter(amount=21, cancellation_date__isnull=True).exists() |
528 | 540 |
basket_item_id_2 = json.loads(resp.text)['id'] |
529 | 541 | |
542 |
url = '%s?email=%s&orig=wcs' % (reverse('api-remove-basket-item'), user_email) |
|
543 |
url = sign_url(url, key) |
|
544 |
data = {'notify': 'true'} |
|
545 |
resp = app.post_json(url, params=data, status=400) |
|
546 |
assert 'missing basket_item_id parameter' in resp.text |
|
547 | ||
548 |
url = '%s?email=%s&orig=wcs' % (reverse('api-remove-basket-item'), user_email) |
|
549 |
url = sign_url(url, key) |
|
550 |
data = {'basket_item_id': 0, 'notify': 'true'} |
|
551 |
resp = app.post_json(url, params=data, status=400) |
|
552 |
assert 'unknown basket item' in resp.text |
|
553 | ||
554 |
url = '%s?orig=wcs' % (reverse('api-remove-basket-item')) |
|
555 |
url = sign_url(url, key) |
|
556 |
data = {'basket_item_id': basket_item_id, 'notify': 'true'} |
|
557 |
resp = app.post_json(url, params=data, status=400) |
|
558 |
assert 'no user specified' in resp.text |
|
559 | ||
560 |
url = '%s?email=%s&orig=wcs' % (reverse('api-remove-basket-item'), 'unknown@example.com') |
|
561 |
url = sign_url(url, key) |
|
562 |
data = {'basket_item_id': basket_item_id, 'notify': 'true'} |
|
563 |
resp = app.post_json(url, params=data, status=400) |
|
564 |
assert 'unknown user' in resp.text |
|
565 | ||
530 | 566 |
with mock.patch('combo.utils.requests_wrapper.RequestsSession.request') as request: |
531 | 567 |
url = '%s?email=%s&orig=wcs' % (reverse('api-remove-basket-item'), user_email) |
532 | 568 |
url = sign_url(url, key) |
533 |
- |