From 5586b6581d9d8db05276c08f2c6deffec04ade4f Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 22 Sep 2014 16:02:59 +0100 Subject: Support format=None for date/time fields --- tests/test_fields.py | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 3 deletions(-) (limited to 'tests/test_fields.py') diff --git a/tests/test_fields.py b/tests/test_fields.py index 0f445d41..b221089c 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -316,7 +316,9 @@ class TestDateField(FieldValues): '2001-99-99': ['Date has wrong format. Use one of these formats instead: YYYY[-MM[-DD]]'], datetime.datetime(2001, 1, 1, 12, 00): ['Expected a date but got a datetime.'], } - outputs = {} + outputs = { + datetime.date(2001, 1, 1): '2001-01-01', + } field = fields.DateField() @@ -334,6 +336,30 @@ class TestCustomInputFormatDateField(FieldValues): field = fields.DateField(input_formats=['%d %b %Y']) +class TestCustomOutputFormatDateField(FieldValues): + """ + Values for `DateField` with a custom output format. + """ + valid_inputs = {} + invalid_inputs = {} + outputs = { + datetime.date(2001, 1, 1): '01 Jan 2001' + } + field = fields.DateField(format='%d %b %Y') + + +class TestNoOutputFormatDateField(FieldValues): + """ + Values for `DateField` with no output format. + """ + valid_inputs = {} + invalid_inputs = {} + outputs = { + datetime.date(2001, 1, 1): datetime.date(2001, 1, 1) + } + field = fields.DateField(format=None) + + class TestDateTimeField(FieldValues): """ Valid and invalid values for `DateTimeField`. @@ -351,7 +377,10 @@ class TestDateTimeField(FieldValues): '2001-99-99T99:00': ['Datetime has wrong format. Use one of these formats instead: YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z]'], datetime.date(2001, 1, 1): ['Expected a datetime but got a date.'], } - outputs = {} + outputs = { + datetime.datetime(2001, 1, 1, 13, 00): '2001-01-01T13:00:00', + datetime.datetime(2001, 1, 1, 13, 00, tzinfo=timezone.UTC()): '2001-01-01T13:00:00Z', + } field = fields.DateTimeField(default_timezone=timezone.UTC()) @@ -369,6 +398,30 @@ class TestCustomInputFormatDateTimeField(FieldValues): field = fields.DateTimeField(default_timezone=timezone.UTC(), input_formats=['%I:%M%p, %d %b %Y']) +class TestCustomOutputFormatDateTimeField(FieldValues): + """ + Values for `DateTimeField` with a custom output format. + """ + valid_inputs = {} + invalid_inputs = {} + outputs = { + datetime.datetime(2001, 1, 1, 13, 00): '01:00PM, 01 Jan 2001', + } + field = fields.DateTimeField(format='%I:%M%p, %d %b %Y') + + +class TestNoOutputFormatDateTimeField(FieldValues): + """ + Values for `DateTimeField` with no output format. + """ + valid_inputs = {} + invalid_inputs = {} + outputs = { + datetime.datetime(2001, 1, 1, 13, 00): datetime.datetime(2001, 1, 1, 13, 00), + } + field = fields.DateTimeField(format=None) + + class TestNaiveDateTimeField(FieldValues): """ Valid and invalid values for `DateTimeField` with naive datetimes. @@ -394,7 +447,9 @@ class TestTimeField(FieldValues): 'abc': ['Time has wrong format. Use one of these formats instead: hh:mm[:ss[.uuuuuu]]'], '99:99': ['Time has wrong format. Use one of these formats instead: hh:mm[:ss[.uuuuuu]]'], } - outputs = {} + outputs = { + datetime.time(13, 00): '13:00:00' + } field = fields.TimeField() @@ -412,6 +467,30 @@ class TestCustomInputFormatTimeField(FieldValues): field = fields.TimeField(input_formats=['%I:%M%p']) +class TestCustomOutputFormatTimeField(FieldValues): + """ + Values for `TimeField` with a custom output format. + """ + valid_inputs = {} + invalid_inputs = {} + outputs = { + datetime.time(13, 00): '01:00PM' + } + field = fields.TimeField(format='%I:%M%p') + + +class TestNoOutputFormatTimeField(FieldValues): + """ + Values for `TimeField` with a no output format. + """ + valid_inputs = {} + invalid_inputs = {} + outputs = { + datetime.time(13, 00): datetime.time(13, 00) + } + field = fields.TimeField(format=None) + + # Choice types... class TestChoiceField(FieldValues): -- cgit v1.2.3