def test_can_be_instantiated_with_data(self): input_data = {} bound = base.BindParseValidate(input_data) self.assertEqual(bound.raw_input_data, input_data) self.assertEqual(bound.is_bound(), True) self.assertEqual(bound.is_valid(), True) self.assertEqual(bound.parsed_data, input_data) self.assertDictEqual(bound.errors, {})
def test_can_be_instantiated_without_data(self): unbound = base.BindParseValidate() self.assertEqual(unbound.raw_input_data, base.UNSET) self.assertEqual(unbound.is_bound(), False) self.assertEqual(unbound.context_key, 'no_context') self.assertDictEqual(unbound.errors, {}) self.assertListEqual(unbound.validators, []) with self.assertRaises(NotImplementedError): unbound.is_valid()
def test_doesnt_run_parse_and_validate_until_is_valid_is_called( self, parse_and_validate): input_data = {} # set input during init bound = base.BindParseValidate(input_data) # shouldn't have run validation parse_and_validate.assert_not_called() # set input manually bound.bind(input_data) # shouldn't have run validation parse_and_validate.assert_not_called() # trigger parsing and validation self.assertEqual(bound.is_valid(), True) parse_and_validate.assert_called_once_with(input_data)