def test_present(): Validated = Unicode.validated_by([Present()]) unicode = Validated(u"foobar") assert unicode.validate() assert not unicode.errors unicode = Validated() assert not unicode.validate() assert unicode.errors == [u"May not be blank."]
def test_longer_than(): Validated = Unicode.validated_by([LongerThan(3)]) unicode = Validated(u"abcd") assert unicode.validate() assert not unicode.errors unicode = Validated(u"abc") assert not unicode.validate() assert unicode.errors == [u"Must be longer than 3."] unicode = Validated() assert not unicode.validate() assert unicode.errors == [u"Must be longer than 3."]
def test_shorter_than(): Validated = Unicode.validated_by([ShorterThan(3)]) unicode = Validated(u"ab") assert unicode.validate() assert not unicode.errors unicode = Validated(u"abc") assert not unicode.validate() assert unicode.errors == [u"Must be shorter than 3."] unicode = Validated() assert not unicode.validate() assert unicode.errors == [u"Must be shorter than 3."]
def test_matches_regex(): Validated = Unicode.validated_by([MatchesRegex(u'^foo$')]) element = Validated(u'foo') assert element.validate() assert not element.errors element = Validated(u'bar') assert not element.validate() assert element.errors == [u'Must be a valid value.'] element = Validated() assert not element.validate() assert element.errors == [u'Must be a valid value.']
def test_contained_in(): Validated = Unicode.validated_by([ContainedIn([u"foo", u"bar"])]) for value in [u"foo", u"bar"]: unicode = Validated(value) assert unicode.validate() assert not unicode.errors unicode = Validated(u"baz") assert not unicode.validate() assert unicode.errors == [u"Not a valid value."] unicode = Validated() assert not unicode.validate() assert unicode.errors == [u"Not a valid value."]
def test_length_within_range(): Validated = Unicode.validated_by([LengthWithinRange(3, 6)]) unicode = Validated(u"abcd") assert unicode.validate() assert not unicode.errors for value in [u"abc", u"abcdef"]: unicode = Validated(value) assert not unicode.validate() assert unicode.errors == [u"Must be longer than 3 and shorter than 6."] unicode = Validated() assert not unicode.validate() assert unicode.errors == [u"Must be longer than 3 and shorter than 6."]
def test_is_url(): Validated = Unicode.validated_by([IsURL()]) element = Validated(u'http://example.com') assert element.validate() assert not element.errors invalid_urls = [u'example.com', u'http://'] for invalid_url in invalid_urls: element = Validated(invalid_url) assert not element.validate() assert element.errors == ['Must be a URL.'] element = Validated() assert not element.validate() assert element.errors == ['Must be a URL.']
def test_is_false(): Validated = Unicode.validated_by([IsFalse()]) unicode = Validated(u"") assert not unicode.validate() assert unicode.errors == [u"Must be false."] unicode = Validated(u"foobar") assert not unicode.validate() assert unicode.errors == [u"Must be false."] unicode = Validated() assert not unicode.validate() assert unicode.errors == [u"Must be false."] integer = Integer.validated_by([IsFalse()])("foobar") assert not integer.validate() assert integer.errors == [u"Must be false."]
def test_probably_an_email_address(): Validated = Unicode.validated_by([ProbablyAnEmailAddress()]) email = Validated(u"*****@*****.**") assert email.validate() assert not email.errors invalid_addresses = [ u"foobar", # @ missing u"foo@bar", # tld missing ] for invalid_address in invalid_addresses: email = Validated(invalid_address) assert not email.validate() assert email.errors == [u"Must be a valid e-mail address."] email = Validated() assert not email.validate() assert email.errors == [u"Must be a valid e-mail address."]