Пример #1
0
class TestEmail(unittest.TestCase):

    def setUp(self):
        self.validator = Email()

    def validate(self, *args):
        try:
            return self.validator.to_python(*args)
        except Invalid as e:
            return unicode(e)

    def message(self, message_name, username, domain):
        email = '@'.join((username, domain))
        return self.validator.message(
            message_name, email, username=username, domain=domain)

    def test_invalid_email_addresses(self):
        invalid_usernames = [
            # (username, domain, message_name),
            ('foo\tbar', 'formencode.org', 'badUsername'),
            ('foo\nbar', 'formencode.org', 'badUsername'),
            ('test', '', 'noAt'),
            ('test', 'foobar', 'badDomain'),
            ('test', 'foobar.5', 'badDomain'),
            ('test', 'foo..bar.com', 'badDomain'),
            ('test', '.foo.bar.com', 'badDomain'),
            ('foo,bar', 'formencode.org', 'badUsername')]

        for username, domain, message_name in invalid_usernames:
            email = '@'.join(el for el in (username, domain) if el)
            error = self.validate(email)
            expected = self.message(message_name, username, domain)
            self.assertEqual(error, expected)

    def test_valid_email_addresses(self):
        valid_email_addresses = [
            # (email address, expected email address),
            (' [email protected] ', '*****@*****.**'),
            ('*****@*****.**', '*****@*****.**'),
            ('*****@*****.**', '*****@*****.**'),
            ('o*[email protected]', 'o*[email protected]'),
            ('*****@*****.**', '*****@*****.**'),
            ('*****@*****.**', '*****@*****.**'),
            ('[email protected]', '[email protected]'),
            ('foo{bar}@example.com', 'foo{bar}@example.com'),
            # examples from RFC 3696
            #   punting on the difficult and extremely uncommon ones
            #('"Abc\@def"@example.com', '"Abc\@def"@example.com'),
            #('"Fred Bloggs"@example.com', '"Fred Bloggs"@example.com'),
            #('"Joe\\Blow"@example.com', '"Joe\\Blow"@example.com'),
            #('"Abc@def"@example.com', '"Abc@def"@example.com'),
            ('customer/[email protected]',
                'customer/[email protected]'),
            ('[email protected]', '[email protected]'),
            ('!def!xyz%[email protected]', '!def!xyz%[email protected]'),
            ('*****@*****.**', '*****@*****.**')]

        for email, expected in valid_email_addresses:
            self.assertEqual(self.validate(email), expected)
class TestEmail(unittest.TestCase):
    def setUp(self):
        self.validator = Email()

    def validate(self, *args):
        try:
            return self.validator.to_python(*args)
        except Invalid as e:
            return unicode(e)

    def message(self, message_name, username, domain):
        email = '@'.join((username, domain))
        return self.validator.message(message_name,
                                      email,
                                      username=username,
                                      domain=domain)

    def test_invalid_email_addresses(self):
        invalid_usernames = [
            # (username, domain, message_name),
            ('foo\tbar', 'formencode.org', 'badUsername'),
            ('foo\nbar', 'formencode.org', 'badUsername'),
            ('test', '', 'noAt'),
            ('test', 'foobar', 'badDomain'),
            ('test', 'foobar.5', 'badDomain'),
            ('test', 'foo..bar.com', 'badDomain'),
            ('test', '.foo.bar.com', 'badDomain'),
            ('foo,bar', 'formencode.org', 'badUsername')
        ]

        for username, domain, message_name in invalid_usernames:
            email = '@'.join(el for el in (username, domain) if el)
            error = self.validate(email)
            expected = self.message(message_name, username, domain)
            self.assertEqual(error, expected)

    def test_valid_email_addresses(self):
        valid_email_addresses = [
            # (email address, expected email address),
            (' [email protected] ', '*****@*****.**'),
            ('*****@*****.**', '*****@*****.**'),
            ('*****@*****.**', '*****@*****.**'),
            ('o*[email protected]', 'o*[email protected]'),
            ('*****@*****.**', '*****@*****.**'),
            ('*****@*****.**', '*****@*****.**'),
            ('[email protected]', '[email protected]'),
            ('foo{bar}@example.com', 'foo{bar}@example.com'),
            # examples from RFC 3696
            #   punting on the difficult and extremely uncommon ones
            #('"Abc\@def"@example.com', '"Abc\@def"@example.com'),
            #('"Fred Bloggs"@example.com', '"Fred Bloggs"@example.com'),
            #('"Joe\\Blow"@example.com', '"Joe\\Blow"@example.com'),
            #('"Abc@def"@example.com', '"Abc@def"@example.com'),
            ('customer/[email protected]',
             'customer/[email protected]'),
            ('[email protected]', '[email protected]'),
            ('!def!xyz%[email protected]', '!def!xyz%[email protected]'),
            ('*****@*****.**', '*****@*****.**')
        ]

        for email, expected in valid_email_addresses:
            self.assertEqual(self.validate(email), expected)