Skip to content

Commit

Permalink
Fix dashboard report form when date range is incomplete, add tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Gaevsky committed Nov 3, 2016
1 parent 84ff76c commit 5ef5570
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/oscar/apps/dashboard/reports/forms.py
Expand Up @@ -31,8 +31,9 @@ class ReportForm(forms.Form):
download = forms.BooleanField(label=_("Download"), required=False)

def clean(self):
if ('date_from' in self.cleaned_data and 'date_to' in self.cleaned_data
and self.cleaned_data['date_from'] >
date_from = self.cleaned_data.get('date_from', None)
date_to = self.cleaned_data.get('date_to', None)
if (all([date_from, date_to]) and self.cleaned_data['date_from'] >
self.cleaned_data['date_to']):
raise forms.ValidationError(_("Your start date must be before your"
" end date"))
Expand Down
50 changes: 50 additions & 0 deletions tests/unit/dashboard/reports_form_tests.py
@@ -0,0 +1,50 @@
from django.test import TestCase

from oscar.apps.dashboard.reports import forms


class TestReportsForm(TestCase):

def test_date_range_empty(self):
form = forms.ReportForm(data={})
self.assertFalse(form.is_valid())

def test_date_range_complete(self):
form = forms.ReportForm(data={
'date_from': '2016-11-02',
'date_to': '2016-11-03',
'report_type': 'order_report'
})
self.assertTrue(form.is_valid())

def test_date_range_incomplete(self):
form = forms.ReportForm(data={
'report_type': 'order_report',
'date_to': '',
'date_from': '2016-11-02'
})
self.assertTrue(form.is_valid(), form.errors)
form = forms.ReportForm(data={
'date_from': '',
'date_to': '2016-11-03',
'report_type': 'order_report'
})
self.assertTrue(form.is_valid())
form = forms.ReportForm(data={
'date_from': '2016-11-02',
'report_type': 'order_report'
})
self.assertTrue(form.is_valid())
form = forms.ReportForm(data={
'date_to': '2016-11-03',
'report_type': 'order_report'
})
self.assertTrue(form.is_valid())

def test_date_range_incorrect(self):
form = forms.ReportForm(data={
'date_from': '2016-11-03',
'date_to': '2016-11-02',
'report_type': 'order_report'
})
self.assertFalse(form.is_valid())

0 comments on commit 5ef5570

Please sign in to comment.