diff --git a/combo/apps/wcs/views.py b/combo/apps/wcs/views.py index 685cba4b..80d470a0 100644 --- a/combo/apps/wcs/views.py +++ b/combo/apps/wcs/views.py @@ -60,6 +60,8 @@ class TrackingCodeView(View): cell = TrackingCodeInputCell.objects.get(id=request.POST['cell']) except (KeyError, ValueError, TrackingCodeInputCell.DoesNotExist): return HttpResponseBadRequest('Invalid cell id') + if not 'code' in request.POST: + return HttpResponseBadRequest('Missing code') code = request.POST['code'] url = self.search(code, wcs_site=cell.wcs_site) diff --git a/tests/test_wcs.py b/tests/test_wcs.py index 7bdc60c4..244bbb4b 100644 --- a/tests/test_wcs.py +++ b/tests/test_wcs.py @@ -14,6 +14,7 @@ import os from django.apps import apps from django.conf import settings from django.core.cache import cache +from django.core.urlresolvers import reverse from django.test import override_settings from django.test.client import RequestFactory from django.utils.six.moves.urllib import parse as urlparse @@ -668,6 +669,8 @@ def test_tracking_code_cell(app): resp.form['code'] = 'CNPHNTFB' resp = resp.form.submit(status=400) + resp = app.post(reverse('wcs-tracking-code'), params={'cell': cell.id}, status=400) + @wcsctl_present def test_cell_assets(app, admin_user): page = Page(title='xxx', slug='test_cell_assets', template_name='standard')