Ejemplo n.º 1
0
    def test_invalid_display_name(self):
        with self.assertRaisesMessage(AnymailInvalidAddress, "Invalid email address 'webmaster'"):
            parse_address_list(['webmaster'])

        with self.assertRaisesMessage(AnymailInvalidAddress, "Maybe missing quotes around a display-name?"):
            # this parses as multiple email addresses, because of the comma:
            parse_address_list(['Display Name, Inc. <*****@*****.**>'])
Ejemplo n.º 2
0
    def test_invalid_display_name(self):
        with self.assertRaisesMessage(AnymailInvalidAddress, "Invalid email address 'webmaster'"):
            parse_address_list(['webmaster'])

        with self.assertRaisesMessage(AnymailInvalidAddress, "Maybe missing quotes around a display-name?"):
            # this parses as multiple email addresses, because of the comma:
            parse_address_list(['Display Name, Inc. <*****@*****.**>'])
Ejemplo n.º 3
0
    def test_lazy_strings(self):
        parsed_list = parse_address_list([ugettext_lazy('"Example, Inc." <*****@*****.**>')])
        self.assertEqual(len(parsed_list), 1)
        self.assertEqual(parsed_list[0].name, "Example, Inc.")
        self.assertEqual(parsed_list[0].email, "*****@*****.**")

        parsed_list = parse_address_list(ugettext_lazy("*****@*****.**"))
        self.assertEqual(len(parsed_list), 1)
        self.assertEqual(parsed_list[0].name, "")
        self.assertEqual(parsed_list[0].email, "*****@*****.**")
Ejemplo n.º 4
0
    def test_lazy_strings(self):
        parsed_list = parse_address_list([ugettext_lazy('"Example, Inc." <*****@*****.**>')])
        self.assertEqual(len(parsed_list), 1)
        self.assertEqual(parsed_list[0].display_name, "Example, Inc.")
        self.assertEqual(parsed_list[0].addr_spec, "*****@*****.**")

        parsed_list = parse_address_list(ugettext_lazy("*****@*****.**"))
        self.assertEqual(len(parsed_list), 1)
        self.assertEqual(parsed_list[0].display_name, "")
        self.assertEqual(parsed_list[0].addr_spec, "*****@*****.**")
Ejemplo n.º 5
0
 def test_invalid_address(self):
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['localonly'])
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['localonly@'])
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['@domainonly'])
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['<localonly@>'])
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['<@domainonly>'])
Ejemplo n.º 6
0
 def test_invalid_address(self):
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['localonly'])
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['localonly@'])
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['@domainonly'])
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['<localonly@>'])
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list(['<@domainonly>'])
Ejemplo n.º 7
0
 def test_idn(self):
     parsed_list = parse_address_list([u"idn@\N{ENVELOPE}.example.com"])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertEqual(parsed.addr_spec, u"idn@\N{ENVELOPE}.example.com")
     self.assertEqual(parsed.address, "*****@*****.**")  # punycode-encoded domain
     self.assertEqual(parsed.username, "idn")
     self.assertEqual(parsed.domain, u"\N{ENVELOPE}.example.com")
Ejemplo n.º 8
0
 def test_unicode_display_name(self):
     parsed_list = parse_address_list([u'"Unicode \N{HEAVY BLACK HEART}" <*****@*****.**>'])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertEqual(parsed.addr_spec, "*****@*****.**")
     self.assertEqual(parsed.display_name, u"Unicode \N{HEAVY BLACK HEART}")
     # formatted display-name automatically shifts to quoted-printable/base64 for non-ascii chars:
     self.assertEqual(parsed.address, '=?utf-8?b?VW5pY29kZSDinaQ=?= <*****@*****.**>')
Ejemplo n.º 9
0
 def test_multiple_emails(self):
     # Django's EmailMessage allows multiple, comma-separated emails
     # in a single recipient string. (It passes them along to the backend intact.)
     # (Depending on this behavior is not recommended.)
     parsed_list = parse_address_list(["[email protected], [email protected]"])
     self.assertEqual(len(parsed_list), 2)
     self.assertEqual(parsed_list[0].email, "*****@*****.**")
     self.assertEqual(parsed_list[1].email, "*****@*****.**")
Ejemplo n.º 10
0
 def test_unicode_display_name(self):
     parsed_list = parse_address_list([u'"Unicode \N{HEAVY BLACK HEART}" <*****@*****.**>'])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertEqual(parsed.email, "*****@*****.**")
     self.assertEqual(parsed.name, u"Unicode \N{HEAVY BLACK HEART}")
     # formatted display-name automatically shifts to quoted-printable/base64 for non-ascii chars:
     self.assertEqual(parsed.address, '=?utf-8?b?VW5pY29kZSDinaQ=?= <*****@*****.**>')
Ejemplo n.º 11
0
 def test_multiple_emails(self):
     # Django's EmailMessage allows multiple, comma-separated emails
     # in a single recipient string. (It passes them along to the backend intact.)
     # (Depending on this behavior is not recommended.)
     parsed_list = parse_address_list(["[email protected], [email protected]"])
     self.assertEqual(len(parsed_list), 2)
     self.assertEqual(parsed_list[0].addr_spec, "*****@*****.**")
     self.assertEqual(parsed_list[1].addr_spec, "*****@*****.**")
Ejemplo n.º 12
0
 def test_idn(self):
     parsed_list = parse_address_list([u"idn@\N{ENVELOPE}.example.com"])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertEqual(parsed.email, u"idn@\N{ENVELOPE}.example.com")
     self.assertEqual(parsed.address, "*****@*****.**")  # punycode-encoded domain
     self.assertEqual(parsed.localpart, "idn")
     self.assertEqual(parsed.domain, u"\N{ENVELOPE}.example.com")
Ejemplo n.º 13
0
 def test_obsolete_display_name(self):
     # you can get away without the quotes if there are no commas or parens
     # (but it's not recommended)
     parsed_list = parse_address_list(['Display Name <*****@*****.**>'])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertEqual(parsed.email, "*****@*****.**")
     self.assertEqual(parsed.name, "Display Name")
     self.assertEqual(parsed.address, 'Display Name <*****@*****.**>')
Ejemplo n.º 14
0
 def test_display_name(self):
     parsed_list = parse_address_list(['"Display Name, Inc." <*****@*****.**>'])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertEqual(parsed.addr_spec, "*****@*****.**")
     self.assertEqual(parsed.display_name, "Display Name, Inc.")
     self.assertEqual(parsed.address, '"Display Name, Inc." <*****@*****.**>')
     self.assertEqual(parsed.username, "test")
     self.assertEqual(parsed.domain, "example.com")
Ejemplo n.º 15
0
 def test_obsolete_display_name(self):
     # you can get away without the quotes if there are no commas or parens
     # (but it's not recommended)
     parsed_list = parse_address_list(['Display Name <*****@*****.**>'])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertEqual(parsed.email, "*****@*****.**")
     self.assertEqual(parsed.name, "Display Name")
     self.assertEqual(parsed.address, 'Display Name <*****@*****.**>')
Ejemplo n.º 16
0
 def test_display_name(self):
     parsed_list = parse_address_list(['"Display Name, Inc." <*****@*****.**>'])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertEqual(parsed.email, "*****@*****.**")
     self.assertEqual(parsed.name, "Display Name, Inc.")
     self.assertEqual(parsed.address, '"Display Name, Inc." <*****@*****.**>')
     self.assertEqual(parsed.localpart, "test")
     self.assertEqual(parsed.domain, "example.com")
Ejemplo n.º 17
0
 def test_simple_email(self):
     parsed_list = parse_address_list(["*****@*****.**"])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertIsInstance(parsed, EmailAddress)
     self.assertEqual(parsed.addr_spec, "*****@*****.**")
     self.assertEqual(parsed.display_name, "")
     self.assertEqual(parsed.address, "*****@*****.**")
     self.assertEqual(parsed.username, "test")
     self.assertEqual(parsed.domain, "example.com")
Ejemplo n.º 18
0
 def test_simple_email(self):
     parsed_list = parse_address_list(["*****@*****.**"])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertIsInstance(parsed, ParsedEmail)
     self.assertEqual(parsed.email, "*****@*****.**")
     self.assertEqual(parsed.name, "")
     self.assertEqual(parsed.address, "*****@*****.**")
     self.assertEqual(parsed.localpart, "test")
     self.assertEqual(parsed.domain, "example.com")
Ejemplo n.º 19
0
 def test_simple_email(self):
     parsed_list = parse_address_list(["*****@*****.**"])
     self.assertEqual(len(parsed_list), 1)
     parsed = parsed_list[0]
     self.assertIsInstance(parsed, ParsedEmail)
     self.assertEqual(parsed.email, "*****@*****.**")
     self.assertEqual(parsed.name, "")
     self.assertEqual(parsed.address, "*****@*****.**")
     self.assertEqual(parsed.localpart, "test")
     self.assertEqual(parsed.domain, "example.com")
Ejemplo n.º 20
0
 def test_single_string(self):
     # bare strings are used by the from_email parsing in BasePayload
     parsed_list = parse_address_list("*****@*****.**")
     self.assertEqual(len(parsed_list), 1)
     self.assertEqual(parsed_list[0].email, "*****@*****.**")
Ejemplo n.º 21
0
 def test_invalid_in_list(self):
     # Make sure it's not just concatenating list items...
     # the bare "Display Name" below should *not* get merged with
     # the email in the second item
     with self.assertRaisesMessage(AnymailInvalidAddress, "Display Name"):
         parse_address_list(['"Display Name"', '<*****@*****.**>'])
Ejemplo n.º 22
0
 def test_email_list(self):
     parsed_list = parse_address_list(
         ["*****@*****.**", "*****@*****.**"])
     self.assertEqual(len(parsed_list), 2)
     self.assertEqual(parsed_list[0].email, "*****@*****.**")
     self.assertEqual(parsed_list[1].email, "*****@*****.**")
Ejemplo n.º 23
0
 def test_single_string(self):
     # bare strings are used by the from_email parsing in BasePayload
     parsed_list = parse_address_list("*****@*****.**")
     self.assertEqual(len(parsed_list), 1)
     self.assertEqual(parsed_list[0].email, "*****@*****.**")
Ejemplo n.º 24
0
 def test_whitespace_only_address(self):
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list([' '])
Ejemplo n.º 25
0
 def test_none_address(self):
     # used for, e.g., telling Mandrill to use template default from_email
     self.assertEqual(parse_address_list([None]), [])
     self.assertEqual(parse_address_list(None), [])
Ejemplo n.º 26
0
 def test_invalid_with_unicode(self):
     with self.assertRaisesMessage(AnymailInvalidAddress,
                                   "Invalid email address '\N{ENVELOPE}'"):
         parse_address_list(["\N{ENVELOPE}"])
Ejemplo n.º 27
0
 def test_email_list(self):
     parsed_list = parse_address_list(["*****@*****.**", "*****@*****.**"])
     self.assertEqual(len(parsed_list), 2)
     self.assertEqual(parsed_list[0].email, "*****@*****.**")
     self.assertEqual(parsed_list[1].email, "*****@*****.**")
Ejemplo n.º 28
0
 def test_none_address(self):
     # used for, e.g., telling Mandrill to use template default from_email
     self.assertEqual(parse_address_list([None]), [])
     self.assertEqual(parse_address_list(None), [])
Ejemplo n.º 29
0
 def test_empty_address(self):
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list([''])
Ejemplo n.º 30
0
 def test_empty_address(self):
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list([''])
Ejemplo n.º 31
0
 def test_whitespace_only_address(self):
     with self.assertRaises(AnymailInvalidAddress):
         parse_address_list([' '])
Ejemplo n.º 32
0
 def test_invalid_with_unicode(self):
     # (assertRaisesMessage can't handle unicode in Python 2)
     with self.assertRaises(AnymailInvalidAddress) as cm:
         parse_address_list([u"\N{ENVELOPE}"])
     self.assertIn(u"Invalid email address '\N{ENVELOPE}'",
                   six.text_type(cm.exception))
Ejemplo n.º 33
0
 def test_invalid_in_list(self):
     # Make sure it's not just concatenating list items...
     # the bare "Display Name" below should *not* get merged with
     # the email in the second item
     with self.assertRaisesMessage(AnymailInvalidAddress, "Display Name"):
         parse_address_list(['"Display Name"', '<*****@*****.**>'])