def test_validation_for_bad_time_strings(self): some_bad_data = {u'_timestamp': u'hammer time'} assert_that( validate_record_data(some_bad_data).is_valid, is_(False)) some_good_data = {u'_timestamp': datetime.datetime(2012, 12, 12, 12)} assert_that( validate_record_data(some_good_data).is_valid, is_(True))
def test_objects_with_invalid_timestamps_are_disallowed(self): validation_result = validate_record_data({ '_timestamp': 'this is not a timestamp' }) assert_that(validation_result, is_invalid_with_message( "_timestamp is not a valid datetime object"))
def test_objects_with_unrecognised_internal_keys_are_disallowed(self): validation_result = validate_record_data({ '_unknown': 'whatever' }) assert_that(validation_result, is_invalid_with_message( "_unknown is not a recognised internal field"))
def test_objects_with_invalid_start_ats_are_disallowed(self): validation_result = validate_record_data( {'_start_at': 'this is not a timestamp'}) assert_that( validation_result, is_invalid_with_message( "_start_at is not a valid datetime object"))
def test_validation_happens_until_error_or_finish(self): # see value validation tests, we don't accept arrays my_second_value_is_bad = { u'aardvark': u'puppies', u'Cthulu': ["R'lyeh"] } assert_that( validate_record_data(my_second_value_is_bad).is_valid, is_(False))
def test_validation_happens_until_error_or_finish(self): #see value validation tests, we don't accept arrays my_second_value_is_bad = { u'aardvark': u'puppies', u'Cthulu': ["R'lyeh"] } assert_that( validate_record_data(my_second_value_is_bad).is_valid, is_(False))
def validate_record(record): """Validate a record Raises a ValidationError if the record is invalid, otherwise returns the record """ # TODO: refactor this result = validate_record_data(record) if not result.is_valid: return result.message return None
def __init__(self, data): result = validate_record_data(data) if not result.is_valid: raise ValidationError(result.message) self.data = data self.meta = {} if "_timestamp" in self.data: self.meta['_week_start_at'] = WEEK.start(self.data['_timestamp']) self.meta['_month_start_at'] = MONTH.start(self.data['_timestamp'])
def __init__(self, data): result = validate_record_data(data) if not result.is_valid: raise ValidationError(result.message) self.data = data self.meta = {} if "_timestamp" in self.data: for period in PERIODS: timestamp_ = self.data['_timestamp'] self.meta[period.start_at_key] = period.start(timestamp_)
def test_objects_with_invalid_keys_are_disallowed(self): validation_result = validate_record_data({'foo-bar': 'bar'}) assert_that(validation_result, is_invalid_with_message("foo-bar is not a valid key"))
def test_objects_with_invalid_values_are_disallowed(self): validation_result = validate_record_data({'foo': tuple()}) assert_that(validation_result, is_invalid_with_message("foo has an invalid value"))
def test_allow_none_value(self): validation_result = validate_record_data({ 'none_is_fine': None }) assert_that(validation_result, is_valid())
def test_objects_with_invalid_ids_are_disallowed(self): validation_result = validate_record_data({'_id': 'invalid id'}) assert_that( validation_result, is_invalid_with_message("_id \"invalid id\" is not a valid id"))
def test_objects_with_invalid_ids_are_disallowed(self): validation_result = validate_record_data({ '_id': 'invalid id' }) assert_that(validation_result, is_invalid_with_message("_id is not a valid id"))
def test_objects_with_unrecognised_internal_keys_are_disallowed(self): validation_result = validate_record_data({'_unknown': 'whatever'}) assert_that( validation_result, is_invalid_with_message( "_unknown is not a recognised internal field"))
def test_objects_with_invalid_values_are_disallowed(self): validation_result = validate_record_data({ 'foo': tuple() }) assert_that(validation_result, is_invalid_with_message("foo has an invalid value"))
def test_objects_with_invalid_keys_are_disallowed(self): validation_result = validate_record_data({ 'foo-bar': 'bar' }) assert_that(validation_result, is_invalid_with_message("foo-bar is not a valid key"))
def test_validation_for_bad_time_strings(self): some_bad_data = {u'_timestamp': u'hammer time'} assert_that(validate_record_data(some_bad_data).is_valid, is_(False)) some_good_data = {u'_timestamp': datetime.datetime(2012, 12, 12, 12)} assert_that(validate_record_data(some_good_data).is_valid, is_(True))
def test_allow_none_value(self): validation_result = validate_record_data({'none_is_fine': None}) assert_that(validation_result, is_valid())