def test_contains(): s = Schema() s.some_list.contains('bravo') s.some_other_list.contains('alpha', 'bravo') s.validate(test_data) assert_true(s.valid)
def test_strip(): s = Schema() s.flanking_spaces.strip() s.validate(_sample_data()) assert_true(s.valid) assert_equals(s.flanking_spaces.result, 'everybody walk the dinosaur')
def test_removespaces(): s = Schema() s.awkward_spaces.removespaces() s.validate(_sample_data()) assert_true(s.valid) assert_equals(s.awkward_spaces.result, 'openthedoorgetonthefloorrr')
def test_lower(): s = Schema() s.upper_case.lower() s.validate(_sample_data()) assert_true(s.valid) assert_equals(s.upper_case.result, 'i am the rawrmachine')
def test_upper(): s = Schema() s.lower_case.upper() s.validate(_sample_data()) assert_true(s.valid) assert_equals(s.lower_case.result, 'I AM THE QUIET MOUSE')
def test_drop_keys(): s = Schema() s.some_dict.drop_keys('one', 'two') s.validate(test_data) assert_true(s.valid) assert_equals(s.some_dict.result, {'red': 'fish', 'blue': 'fish'})
def test_constant(): s = Schema() s.some_cst_value.constant('blue apple') s.validate({'some_cst_value': 'Roger that'}) assert_true(s.valid) assert_equals(s.some_cst_value.result, 'blue apple')
def test_boolean(): s = Schema(blank='all') s.true_value.boolean() s.false_value.boolean() s.validate(test_data) assert_true(s.valid) assert_true(s.true_value.result) assert_equals(s.false_value.result, False)
def test_canonize(): s = Schema() s.noncanonical_string.canonize() s.validate(_sample_data()) assert_true(s.valid) assert_equals(s.noncanonical_string.result, u'there_is_nothing_canonical_aboutmeeeeee333_see?')
def test_numeric(): s = Schema() s.integer_value.numeric() s.float_value.numeric() s.validate(test_data) assert_true(s.valid) assert_is_instance(s.integer_value.result, int) assert_is_instance(s.float_value.result, float)
def test_time_between(): s = Schema() s.my_birthday.date().time_between(date(1988, 1, 1), date.today()) s.long_time_ago.date(format='american_scientific').time_between(date.today(), date(2055, 1, 1)) s.validate(test_data) assert_false(s.valid) assert_true(s.my_birthday.valid) assert_false(s.long_time_ago.valid)
def test_datetime(): s = Schema() s.valid_datetime.datetime() s.invalid_datetime.datetime() s.validate(test_data) assert_false(s.valid) assert_true(s.valid_datetime.valid) assert_false(s.invalid_datetime.valid)
def test_longint(): s = Schema() s.integer_value.longint() s.float_value.longint() s.sizable_number.longint() s.validate(test_data) assert_false(s.valid) assert_is_instance(s.integer_value.result, long) assert_is_instance(s.sizable_number.result, long)
def test_ipv4(): s = Schema() s.valid_ipv4.ipv4() s.invalid_ipv4.ipv4() s.invalid_ipv42.ipv4() s.validate(_sample_data()) assert_true(s.valid_ipv4.valid) assert_false(s.invalid_ipv4.valid) assert_false(s.invalid_ipv42.valid)
def test_time_between(): s = Schema() s.my_birthday.date().time_between(date(1988, 1, 1), date.today()) s.long_time_ago.date(format='american_scientific').time_between( date.today(), date(2055, 1, 1)) s.validate(test_data) assert_false(s.valid) assert_true(s.my_birthday.valid) assert_false(s.long_time_ago.valid)
def test_email(): s = Schema() s.valid_email.email() s.invalid_email.email() s.invalid_email2.email() s.invalid_email3.email() s.validate(_sample_data()) assert_true(s.valid_email.valid) assert_false(s.invalid_email.valid) assert_false(s.invalid_email2.valid) assert_false(s.invalid_email3.valid)
def test_decimal(): s = Schema() s.decimal_value.decimal() s.not_decimal_value.decimal() s.string_value.decimal() s.validate(test_data) assert_false(s.valid) assert_true(s.decimal_value.valid) assert_true(s.not_decimal_value.valid) assert_false(s.string_value.valid)
def test_time_before(): s = Schema() s.my_birthday.date().time_before(date.today()) s.far_far_away.date(format='american_scientific').time_before(date.today()) s.long_time_ago.date(format='american_scientific').time_before(date.today()) s.validate(test_data) assert_false(s.valid) assert_true(s.my_birthday.valid) assert_false(s.far_far_away.valid) # one day this assertion will be True :) assert_true(s.long_time_ago.valid)
def test_time_after(): s = Schema() s.my_birthday.date().time_after(date.today()) s.far_far_away.date(format='american_scientific').time_after(date.today()) s.long_time_ago.date(format='american_scientific').time_after(date.today()) s.validate(test_data) assert_false(s.valid) assert_false(s.my_birthday.valid) assert_true(s.far_far_away.valid) assert_false(s.long_time_ago.valid)
def test_integer(): s = Schema(strip_blank=False) s.integer_value.integer() s.float_value.integer() s.not_integer.integer() s.validate(test_data) assert_false(s.valid) assert_true(s.integer_value.valid) assert_false(s.float_value.valid) assert_false(s.not_integer.valid) assert_is_instance(s.integer_value.result, int)
def test_time_before(): s = Schema() s.my_birthday.date().time_before(date.today()) s.far_far_away.date(format='american_scientific').time_before(date.today()) s.long_time_ago.date(format='american_scientific').time_before( date.today()) s.validate(test_data) assert_false(s.valid) assert_true(s.my_birthday.valid) assert_false( s.far_far_away.valid) # one day this assertion will be True :) assert_true(s.long_time_ago.valid)
def test_alpha(): s = Schema() s.alpha_string.alpha() s.validate(_sample_data()) assert_true(s.valid) s = Schema() s.actual_numbers.alpha() s.alnum_string.alpha() assert_false(s.valid) assert_false(s.actual_numbers.valid) assert_false(s.alnum_string.valid)
def test_slugify(): s = Schema() s.notslugified.slugify() s.alsonotslugified.slugify() s.sluggingindempotency.slugify() s.validate(_sample_data()) assert_true(s.valid) assert_equals(s.notslugified.result, u'i-am-not-slugified-omg-punctu3232ation-who-submits-data-like-this-anyway') assert_equals(s.alsonotslugified.result, u'a-use-slasshes-and-stufff-32') assert_equals(s.sluggingindempotency.result, u'already-slugged')
def test_minimum(): s = Schema() s.some_number.minimum(1) s.validate({'some_number': 0}) assert_false(s.valid) s.reset() s.validate({'some_number': 1}) assert_true(s.valid)
def test_zero(): s = Schema() s.some_number.zero() s.validate({'some_number': 1}) assert_false(s.valid) s.reset() s.validate({'some_number': 0}) assert_true(s.valid)
def test_equal(): s = Schema() s.some_number.equal(10) s.validate({'some_number': 11}) assert_false(s.valid) s.reset() s.validate({'some_number': 10}) assert_true(s.valid)
def test_maximum(): s = Schema() s.some_number.maximum(5) s.validate({'some_number': 6}) assert_false(s.valid) s.reset() s.validate({'some_number': 5}) assert_true(s.valid)
def test_key_lookup(): s = Schema() s.some_key.key_lookup({'alpha': 1, 'bravo': 2}) s.some_nonexistent_key.key_lookup({'alpha': 1, 'bravo': 2}, nomatch='fail') s.some_nonexistent_key_2.key_lookup({'alpha': 1, 'bravo': 2}) s.validate(_sample_data()) assert_false(s.valid) assert_true(s.some_key.valid) assert_equals(s.some_key.result, 1) assert_false(s.some_nonexistent_key.valid) assert_true(s.some_nonexistent_key_2.valid) assert_equals(s.some_nonexistent_key_2.result, 'delta')
def test_time(): s = Schema() s.valid_time.time() s.valid_24_time.time(format='military') s.invalid_12_time.time() s.invalid_24_time.time(format='military') s.garbage_time.time() s.validate(test_data) assert_false(s.valid) assert_true(s.valid_time.valid) assert_true(s.valid_24_time.valid) assert_false(s.invalid_12_time.valid) assert_false(s.invalid_24_time.valid) assert_false(s.garbage_time.valid)
def test_date(): s = Schema() s.valid_date.date() s.valid_europe_date.date(format='europe') s.valid_europe_expanded.date(format='europe_expanded') s.invalid_date.date() s.garbage_date.date() s.validate(test_data) assert_false(s.valid) assert_true(s.valid_date.valid) assert_true(s.valid_europe_date.valid) assert_true(s.valid_europe_expanded.valid) assert_false(s.invalid_date.valid) assert_false(s.garbage_date.valid)
def test_slugify(): s = Schema() s.notslugified.slugify() s.alsonotslugified.slugify() s.sluggingindempotency.slugify() s.validate(_sample_data()) assert_true(s.valid) assert_equals( s.notslugified.result, u'i-am-not-slugified-omg-punctu3232ation-who-submits-data-like-this-anyway' ) assert_equals(s.alsonotslugified.result, u'a-use-slasshes-and-stufff-32') assert_equals(s.sluggingindempotency.result, u'already-slugged')
def test_credit_card(): s = Schema() s.valid_visa.credit_card() s.valid_amex.credit_card() s.valid_mc.credit_card() s.valid_discover.credit_card() s.valid_other.credit_card() s.invalid_number.credit_card() s.invalid_date.credit_card() s.invalid_csc.credit_card() s.forbidden_type.credit_card(brands=['visa']) s.expired_date.credit_card() s.validate(test_data) assert_false(s.valid) assert_true(s.valid_visa.valid) assert_true(s.valid_amex.valid) assert_true(s.valid_mc.valid) assert_true(s.valid_discover.valid) assert_true(s.valid_other.valid) assert_false(s.invalid_number.valid) assert_false(s.invalid_date.valid) assert_false(s.invalid_csc.valid) assert_false(s.forbidden_type.valid) assert_false(s.expired_date.valid) assert_equals(s.valid_visa.result[3], u'visa') assert_equals(s.valid_amex.result[3], u'amex') assert_equals(s.valid_mc.result[3], u'mastercard') assert_equals(s.valid_discover.result[3], u'discover') assert_equals(s.valid_other.result[3], u'other') assert_equals(s.invalid_number.errors[0], 'The specified credit card number is not valid.') assert_equals( s.invalid_date.errors[0], 'Invalid expiration date format. Must be one of : [MMYY, MYY, MYYYY, MMYYYY]' ) assert_equals(s.invalid_csc.errors[0], 'The CSC code is not valid.') assert_equals(s.forbidden_type.errors[0], 'The type amex is not an acceptable brand.') assert_equals(s.expired_date.errors[0], 'The credit card is expired.')
def test_alt_behavior(): sdict = { 'some_field': [('alt', 'alt_name'), 'require'] } tdata = { 'alt_name': 'bob the builder' } s = Schema.from_dict(sdict) s.validate(tdata)
def test_text(): s = Schema() s.random_string.text() s.validate(_sample_data()) assert_true(s.valid) s = Schema() s.actual_numbers.text() s.validate(_sample_data()) assert_false(s.valid)
def test_nonblank(): s = Schema() s.random_string.nonblank() s.validate(_sample_data()) assert_true(s.valid) s = Schema() s.blank_string.nonblank() s.validate(_sample_data()) assert_false(s.valid)
def test_credit_card(): s = Schema() s.valid_visa.credit_card() s.valid_amex.credit_card() s.valid_mc.credit_card() s.valid_discover.credit_card() s.valid_other.credit_card() s.invalid_number.credit_card() s.invalid_date.credit_card() s.invalid_csc.credit_card() s.forbidden_type.credit_card(brands=['visa']) s.expired_date.credit_card() s.validate(test_data) assert_false(s.valid) assert_true(s.valid_visa.valid) assert_true(s.valid_amex.valid) assert_true(s.valid_mc.valid) assert_true(s.valid_discover.valid) assert_true(s.valid_other.valid) assert_false(s.invalid_number.valid) assert_false(s.invalid_date.valid) assert_false(s.invalid_csc.valid) assert_false(s.forbidden_type.valid) assert_false(s.expired_date.valid) assert_equals(s.valid_visa.result[3], u'visa') assert_equals(s.valid_amex.result[3], u'amex') assert_equals(s.valid_mc.result[3], u'mastercard') assert_equals(s.valid_discover.result[3], u'discover') assert_equals(s.valid_other.result[3], u'other') assert_equals(s.invalid_number.errors[ 0], 'The specified credit card number is not valid.') assert_equals(s.invalid_date.errors[ 0], 'Invalid expiration date format. Must be one of : [MMYY, MYY, MYYYY, MMYYYY]') assert_equals(s.invalid_csc.errors[0], 'The CSC code is not valid.') assert_equals(s.forbidden_type.errors[ 0], 'The type amex is not an acceptable brand.') assert_equals(s.expired_date.errors[0], 'The credit card is expired.')
def test_strbool(): s = Schema(blank='all', strip_blank=False) s.true_value.strbool() s.str_false_1.strbool() s.str_false_2.strbool() s.str_false_3.strbool() s.str_false_4.strbool() s.str_false_5.strbool() s.str_false_6.strbool() s.validate(test_data) assert_true(s.valid) assert_true(s.true_value.result) assert_equals(s.str_false_1.result, False) assert_equals(s.str_false_2.result, False) assert_equals(s.str_false_3.result, False) assert_equals(s.str_false_4.result, False) assert_equals(s.str_false_5.result, False) assert_equals(s.str_false_6.result, False)