예제 #1
0
 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")
예제 #2
0
 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")
예제 #3
0
 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")
예제 #4
0
 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")
예제 #5
0
 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()
예제 #6
0
 def test_str_is_str_when_tojson(self):
     article = SimpleArticle(title='Lak Lak')
     self.assertEqual(article.tojson(), {'title': 'Lak Lak'})
예제 #7
0
 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, {})
예제 #8
0
 def test_initialize_simple_object_without_arguments(self):
     article = SimpleArticle()
     self.assertEqual(article._data_dict, {'title': None, 'content': None})
예제 #9
0
 def test_is_valid_returns_false_if_object_is_not_valid(self):
     article = SimpleArticle()
     self.assertEqual(False, article.is_valid)
예제 #10
0
 def test_validate_raises_if_object_is_not_valid(self):
     article = SimpleArticle()
     self.assertRaises(ValidationException, article.validate)
예제 #11
0
 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)
예제 #12
0
 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())
예제 #13
0
 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")
예제 #14
0
 def test_initialize_simple_object_with_arguments(self):
     article = SimpleArticle(title='Oi', content='Tik')
     self.assertEqual(article._data_dict, {'title': 'Oi', 'content': 'Tik'})
예제 #15
0
 def test_str_is_str_after_assigned(self):
     article = SimpleArticle(title='Lak Lak')
     self.assertEqual(article._data_dict, {
         'title': 'Lak Lak',
         'content': None
     })
예제 #16
0
 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)
예제 #17
0
 def test_required_raises_when_embedded_value_is_none(self):
     article = SimpleArticle()
     self.assertRaisesRegex(
         ValidationException,
         "'title': value required",
         article.validate)