Exemplo n.º 1
0
 def run_test(self, obj, service=None, method=None, operator=None):
     ec = apilib.ErrorContext()
     vc = apilib.ValidationContext(service=service,
                                   method=method,
                                   operator=operator)
     m = self.Model.from_json(obj, ec, vc)
     return m, ec.all_errors()
Exemplo n.º 2
0
    def test_simple_valid(self):
        ec = apilib.ErrorContext()
        m = SimpleValidationModel.from_json(None, ec, apilib.ValidationContext())
        self.assertIsNone(m)
        self.assertFalse(ec.has_errors())

        ec = apilib.ErrorContext()
        m = SimpleValidationModel.from_json({'fstring': None}, ec, apilib.ValidationContext())
        self.assertIsNotNone(m)
        self.assertEqual(None, m.fstring)
        self.assertFalse(ec.has_errors())

        ec = apilib.ErrorContext()
        m = SimpleValidationModel.from_json({'fstring': 'foo'}, ec, apilib.ValidationContext())
        self.assertIsNotNone(m)
        self.assertEqual('foo', m.fstring)
        self.assertFalse(ec.has_errors())
Exemplo n.º 3
0
 def test_simple_invalid(self):
     ec = apilib.ErrorContext()
     m = SimpleValidationModel.from_json({'fstring': 'EvIL'}, ec, apilib.ValidationContext())
     self.assertIsNone(m)
     self.assertTrue(ec.has_errors())
     errors = ec.all_errors()
     self.assertEqual(1, len(errors))
     self.assertEqual('EVIL_VALUE',errors[0].code)
     self.assertEqual('fstring', errors[0].path)
     self.assertEqual('An evil value was found', errors[0].msg)
Exemplo n.º 4
0
 def run_test(self,
              model_type,
              obj,
              service=None,
              method=None,
              operator=None):
     ec = apilib.ErrorContext()
     vc = apilib.ValidationContext(service=service,
                                   method=method,
                                   operator=operator)
     m = model_type.from_json(obj, ec, vc)
     sorted_errors = sorted(
         ec.all_errors(), key=lambda e:
         (e.code, e.path))  # So as not to rely on iteration order
     return m, sorted_errors
Exemplo n.º 5
0
 def run_validator_test_for_method(self, validator, value, method,
                                   *error_codes):
     return self.run_validator_test_for_context(
         validator, value, apilib.ValidationContext(method=method),
         *error_codes)