def test_str_raises_if_value_is_not_string(self): article = SimpleArticle(title=66) with self.assertRaises(ValidationException) as context: article.validate() self.assertEqual(len(context.exception.keypath_messages), 1) self.assertEqual(context.exception.keypath_messages['title'], "value is not str")
def test_validate_by_default_validates_one_field(self): article = SimpleArticle() with self.assertRaises(ValidationException) as context: article.validate() exception = context.exception self.assertEqual(len(exception.keypath_messages), 1) self.assertEqual(exception.keypath_messages['title'], "value required")
def test_set_does_not_accept_undefined_keys_by_default(self): article = SimpleArticle(title='Ngê Tu Ngê') with self.assertRaises(ValidationException) as context: article.set(makcêcê='Tu Ngê Dzu Ngê') self.assertTrue(len(context.exception.keypath_messages) == 1) self.assertEqual(context.exception.keypath_messages['makcêcê'], "key is not allowed")
def test_validate_validates_all_fields_if_option_is_passed(self): article = SimpleArticle() with self.assertRaises(ValidationException) as context: article.validate(all_fields=True) exception = context.exception self.assertEqual(len(exception.keypath_messages), 2) self.assertEqual(exception.keypath_messages['title'], "value required") self.assertEqual(exception.keypath_messages['content'], "value required")
def test_reset_raises_if_no_reset_all_fields_option(self): article = SimpleArticle(title='q', content='b') article._mark_not_new() article.title = 'a' article.title = 'b' with self.assertRaises(JSONClassResetNotEnabledError): article.reset()
def test_str_is_str_when_tojson(self): article = SimpleArticle(title='Lak Lak') self.assertEqual(article.tojson(), {'title': 'Lak Lak'})
def test_reset_wont_record_if_no_reset_all_fields_option(self): article = SimpleArticle(title='q', content='b') article._mark_not_new() article.title = 'a' article.title = 'b' self.assertEqual(article.previous_values, {})
def test_initialize_simple_object_without_arguments(self): article = SimpleArticle() self.assertEqual(article._data_dict, {'title': None, 'content': None})
def test_is_valid_returns_false_if_object_is_not_valid(self): article = SimpleArticle() self.assertEqual(False, article.is_valid)
def test_validate_raises_if_object_is_not_valid(self): article = SimpleArticle() self.assertRaises(ValidationException, article.validate)
def test_validate_only_validate_modified_fields_for_non_new_object(self): article = SimpleArticle(title='my', content='side') article._mark_not_new() article.content = None article._modified_fields = [] article.validate(all_fields=True)
def test_validate_does_not_raise_and_returns_self_for_valid_object(self): article = SimpleArticle(title='U Ia Huê', content='Bê Tshua Bo') self.assertEqual(article, article.validate())
def test_initialize_do_not_accept_undefined_keys_by_default(self): with self.assertRaises(ValidationException) as context: SimpleArticle(dzimsikai='Ku Piang Hoê') self.assertTrue(len(context.exception.keypath_messages) == 1) self.assertEqual(context.exception.keypath_messages['dzimsikai'], "key is not allowed")
def test_initialize_simple_object_with_arguments(self): article = SimpleArticle(title='Oi', content='Tik') self.assertEqual(article._data_dict, {'title': 'Oi', 'content': 'Tik'})
def test_str_is_str_after_assigned(self): article = SimpleArticle(title='Lak Lak') self.assertEqual(article._data_dict, { 'title': 'Lak Lak', 'content': None })
def test_is_valid_returns_true_if_object_is_valid(self): article = SimpleArticle(title='U Ia Huê', content='Bê Tshua Bo') self.assertEqual(True, article.is_valid)
def test_required_raises_when_embedded_value_is_none(self): article = SimpleArticle() self.assertRaisesRegex( ValidationException, "'title': value required", article.validate)