예제 #1
0
 def test_datetime_open(self):
     field = pg_forms.DateTimeRangeField()
     value = field.clean(['', '2013-04-09 11:45'])
     self.assertEqual(
         value, DateTimeTZRange(None, datetime.datetime(2013, 4, 9, 11,
                                                        45)))
예제 #2
0
 def test_datetime_invalid_lower(self):
     field = pg_forms.DateTimeRangeField()
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean(['45', '2013-04-09 11:45'])
     self.assertEqual(cm.exception.messages[0], 'Enter a valid date/time.')
예제 #3
0
 def test_datetime_has_changed_last(self):
     self.assertTrue(pg_forms.DateTimeRangeField().has_changed(
         ['2010-01-01 00:00', '2020-12-12 00:00'],
         ['2010-01-01 00:00', '2020-12-31 23:00'],
     ))
예제 #4
0
 def test_valid_timestamps(self):
     field = pg_forms.DateTimeRangeField()
     value = field.clean(['01/01/2014 00:00:00', '02/02/2014 12:12:12'])
     lower = datetime.datetime(2014, 1, 1, 0, 0, 0)
     upper = datetime.datetime(2014, 2, 2, 12, 12, 12)
     self.assertEqual(value, DateTimeTZRange(lower, upper))
예제 #5
0
 def test_datetime_prepare_value(self):
     field = pg_forms.DateTimeRangeField()
     value = field.prepare_value(
         DateTimeTZRange(datetime.datetime(2015, 5, 22, 16, 6, 33, tzinfo=timezone.utc), None)
     )
     self.assertEqual(value, [datetime.datetime(2015, 5, 22, 18, 6, 33), None])
예제 #6
0
 class DateTimeRangeForm(forms.Form):
     datetime_field = pg_forms.DateTimeRangeField(
         show_hidden_initial=True)
예제 #7
0
 def test_datetime_incorrect_data_type(self):
     field = pg_forms.DateTimeRangeField()
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean('2013-04-09 11:45')
     self.assertEqual(cm.exception.messages[0], 'Enter two valid date/times.')
     self.assertEqual(cm.exception.code, 'invalid')
예제 #8
0
 def test_datetime_lower_bound_higher(self):
     field = pg_forms.DateTimeRangeField()
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean(['2006-10-25 14:59', '2006-10-25 14:58'])
     self.assertEqual(cm.exception.messages[0], 'The start of the range must not exceed the end of the range.')
     self.assertEqual(cm.exception.code, 'bound_ordering')
예제 #9
0
 def test_datetime_invalid_upper(self):
     field = pg_forms.DateTimeRangeField()
     with self.assertRaises(exceptions.ValidationError) as cm:
         field.clean(["2013-04-09 11:45", "sweet pickles"])
     self.assertEqual(cm.exception.messages[0], "Enter a valid date/time.")
예제 #10
0
 def test_model_field_with_default_bounds(self):
     field = pg_forms.DateTimeRangeField(default_bounds="[]")
     value = field.clean(["2014-01-01 00:00:00", "2014-02-03 12:13:14"])
     lower = datetime.datetime(2014, 1, 1, 0, 0, 0)
     upper = datetime.datetime(2014, 2, 3, 12, 13, 14)
     self.assertEqual(value, DateTimeTZRange(lower, upper, "[]"))
예제 #11
0
 def test_datetime_has_changed_first(self):
     self.assertTrue(pg_forms.DateTimeRangeField().has_changed(
         ["2010-01-01 00:00", "2020-12-12 00:00"],
         ["2010-01-31 23:00", "2020-12-12 00:00"],
     ))