Пример #1
0
 def test_invalid_email_structure_regex(self):
     'Rejects an email with an invalid structure.'
     for address in INVALID_EXAMPLES:
         with self.assertRaises(
                 expected_exception=AddressFormatError,
                 msg=f'Test failed for {address}'):
             regex_check(EmailAddress(address))
 def test_smtp_success(self):
     'Succeeds on successful SMTP conversation'
     self.assertTrue(
         smtp_check(
             email_address=EmailAddress('*****@*****.**'),
             mx_records=['smtp.example.com'],
         )
     )
Пример #3
0
 def test_idna_conversion_invalid(self):
     'Rejects email address which is not IDNA-convertible.'
     for address in self.invalid_tests:
         # This must be rejected directly by the EmailAddress constructor...
         with self.assertRaises(AddressFormatError) as exc:
             EmailAddress(address)
         self.assertTupleEqual(exc.exception.args, ())
         # ...and indirectly by validate_email().
         self.assertFalse(validate_email(address))
Пример #4
0
 def test_user_domain_invalid(self):
     'Rejects unparseable email address.'
     for address in self.invalid_tests:
         # This must be rejected directly by the EmailAddress constructor...
         with self.assertRaises(AddressFormatError) as exc:
             EmailAddress(address)
         self.assertTupleEqual(exc.exception.args, ())
         # ...and indirectly by validate_email().
         self.assertFalse(validate_email(address))
 def _test_one_smtp_failure(self, cmd, reply, exception):
     with patch.dict(in_dict=SMTPMock.reply, values={cmd: reply}):
         with self.assertRaises(exception) as context:
             smtp_check(
                 email_address=EmailAddress('*****@*****.**'),
                 mx_records=['smtp.example.com'],
             )
         if isinstance(reply, tuple):
             error_messages = context.exception.error_messages
             error_info = error_messages['smtp.example.com']
             self.assertEqual(error_info.command[:4].upper(), cmd or 'CONN')
             self.assertEqual(error_info.code, reply[0])
             self.assertEqual(error_info.text, reply[1].decode())
Пример #6
0
 def test_blacklist_positive(self):
     'Disallows blacklist item: mailinator.com.'
     with self.assertRaises(DomainBlacklistedError):
         domainlist_check(EmailAddress('*****@*****.**'))
     with self.assertRaises(DomainBlacklistedError):
         validate_email_or_fail(
             email_address='*****@*****.**', check_regex=False,
             use_blacklist=True)
     with self.assertRaises(DomainBlacklistedError):
         validate_email_or_fail(
             email_address='*****@*****.**', check_regex=True,
             use_blacklist=True)
     with self.assertLogs():
         self.assertFalse(expr=validate_email(
             email_address='*****@*****.**', check_regex=False,
             use_blacklist=True, debug=True))
     with self.assertLogs():
         self.assertFalse(expr=validate_email(
             email_address='*****@*****.**', check_regex=True,
             use_blacklist=True, debug=True))
Пример #7
0
 def test_blacklist_negative(self):
     'Allows a domain not in the blacklist.'
     self.assertTrue(expr=domainlist_check(
         EmailAddress('*****@*****.**')))
Пример #8
0
 def test_skip_smtp_argument(self, check_mx_records_mock):
     'Check correct work of `skip_smtp` argument.'
     self.assertTrue(mx_check(
         EmailAddress('*****@*****.**'), debug=False, skip_smtp=True))
     self.assertEqual(check_mx_records_mock.call_count, 0)
Пример #9
0
 def test_idna_conversion_valid(self):
     'Converts email address into ASCII-compatible encoding.'
     for address, ace in self.valid_tests.items():
         self.assertEqual(EmailAddress(address).ace, ace)
Пример #10
0
 def test_user_domain_valid(self):
     'Splits email address into user and domain parts.'
     for address, (user, domain) in self.valid_tests.items():
         self.assertEqual(EmailAddress(address).user, user)
         self.assertEqual(EmailAddress(address).domain, domain)
Пример #11
0
 def test_valid_email_structure_regex(self):
     'Accepts an email with a valid structure.'
     for address in VALID_EXAMPLES:
         self.assertTrue(
             expr=regex_check(EmailAddress(address)),
             msg=f'Check is not true with {address}')