Exemplo n.º 1
0
 def test_valid_with_incorrect_subkey(self):
     for input_data in [
             self.incorrect_subkey, self.dotsep_incorrect_subkey
     ]:
         field = fields.DateOfBirthField(input_data)
         self.assertParsesCorrectly(field, self.missing_month_value,
                                    ['', '2', '1982'])
Exemplo n.º 2
0
    def test_required_fails_with_any_missing_data(self):
        only_one = {
            'dob.day': '2',
        }
        field = fields.DateOfBirthField(only_one)
        self.assertFalse(field.is_valid())
        self.assertDictEqual(
            field.get_current_value(), {'year': None, 'month': None, 'day': 2})
        self.assertFalse(field.is_empty())

        blank = {
            'dob.year': None,
            'dob.day': None,
            'dob.month': None,
        }
        missing = {}
        for input_data in [missing, blank]:
            field = fields.DateOfBirthField(input_data)
            self.assertFalse(field.is_valid())
            self.assertTrue(field.is_empty())
            self.assertEqual(field.get_current_value(), self.empty_value)
Exemplo n.º 3
0
    def test_display_value_uses_raw_value_if_non_integer(self):
        data = {
            'dob': {
                'year': 'foo',
                'month': 134,
                'day': False
            }
        }

        field = fields.DateOfBirthField(data)
        field.is_valid()
        self.assertEqual(field.get_display_value(), "134/False/foo")
Exemplo n.º 4
0
 def test_invalid_if_wrong_day_for_month(self):
     data = {
         'dob': {
             'year': 1901,
             'month': 2,
             'day': 30
         }
     }
     field = fields.DateOfBirthField(data)
     self.assertFalse(field.is_valid())
     self.assertIn(
         "30 is not a day in that month. Please enter a valid date",
         field.get_errors_list())
Exemplo n.º 5
0
    def test_required_only_fails_with_all_missing_data(self):
        only_one = {
            'dob.day': '2',
        }
        field = fields.DateOfBirthField(only_one)
        self.assertParsesCorrectly(field, {
            'year': '',
            'month': '',
            'day': '2'
        }, ['', '2', ''])
        self.assertFalse(field.is_empty())

        blank = {
            'dob.year': '',
            'dob.day': '',
            'dob.month': '',
        }
        missing = {}
        for input_data in [missing, blank]:
            field = fields.DateOfBirthField(input_data)
            self.assertFalse(field.is_valid())
            self.assertTrue(field.is_empty())
            self.assertEqual(field.get_current_value(), self.empty_value)
Exemplo n.º 6
0
 def test_parses_filled_multivalue_dicts(self):
     single = MultiValueDict({
         'dob.year': ['1982'],
         'dob.day': ['2'],
         'dob.month': ['12'],
     })
     multi = MultiValueDict({
         'dob.year': ['2000', '1982'],
         'dob.day': ['5', '2'],
         'dob.month': ['1', '12'],
     })
     for input_data in [single, multi]:
         field = fields.DateOfBirthField(input_data)
         self.assertParsesCorrectly(field, self.parsed_value)
Exemplo n.º 7
0
 def test_init_multivaluefield(self):
     field = fields.DateOfBirthField()
     self.assertTrue(hasattr(field, 'year'))
     self.assertTrue(hasattr(field, 'month'))
     self.assertTrue(hasattr(field, 'day'))
     self.assertEqual(field.empty_value, self.empty_value)
     # make sure all the subfields are instances
     for sub in field.subfields:
         self.assertFalse(inspect.isclass(sub))
         self.assertEqual(sub.required, False)
         self.assertEqual(sub.is_subfield, True)
         self.assertEqual(sub.parent, field)
         expected_sub = getattr(field, sub.context_key)
         self.assertEqual(sub, expected_sub)
Exemplo n.º 8
0
 def test_can_be_instantiated_with_preparsed_data(self):
     prestructured = {'dob': {'day': '2', 'year': '1982', 'month': '12'}}
     dotsep = {
         'dob.year': '1982',
         'dob.day': '2',
         'dob.month': '12',
     }
     undersep = {
         'dob_year': '1982',
         'dob_day': '2',
         'dob_month': '12',
     }
     for input_data in [prestructured, dotsep, undersep]:
         field = fields.DateOfBirthField(input_data)
         self.assertParsesCorrectly(field, self.parsed_value)
Exemplo n.º 9
0
 def test_parses_empty_multivalue_dicts(self):
     empty = MultiValueDict({
         'dob.year': [],
         'dob.day': [],
         'dob.month': [],
     })
     blank = MultiValueDict({
         'dob.year': [''],
         'dob.day': [''],
         'dob.month': [''],
     })
     missing = MultiValueDict({})
     for input_data in [empty, blank, missing]:
         field = fields.DateOfBirthField(input_data, required=False)
         self.assertParsesCorrectly(field, self.empty_value, ['', '', ''])
Exemplo n.º 10
0
 def test_render_dateofbirthfield(self):
     field = fields.DateOfBirthField()
     self.assertEqual(field.render(), str(field))
     self.assertEqual(field.render(), mock.rendered.DATEOFBIRTHFIELD)
Exemplo n.º 11
0
 def test_invalid_with_missing_subkey(self):
     for input_data in [self.missing_subkey, self.dotsep_missing_subkey]:
         field = fields.DateOfBirthField(input_data)
         self.assertFalse(field.is_valid())