diff --git a/.github/workflows/testing.yaml b/.github/workflows/testing.yaml index 5b106b8..7764ede 100644 --- a/.github/workflows/testing.yaml +++ b/.github/workflows/testing.yaml @@ -1,5 +1,11 @@ name: Testing on: + pull_request: + paths-ignore: + - 'docs/**' + - 'setup.*' + - '*.md' + - '*.rst' push: branches: ["*"] paths-ignore: diff --git a/email_normalize/__init__.py b/email_normalize/__init__.py index 4a8cd8c..14e6cfd 100644 --- a/email_normalize/__init__.py +++ b/email_normalize/__init__.py @@ -197,8 +197,6 @@ async def normalize(self, email_address: str) -> Result: local_part = local_part.replace('.', '') if provider.Flags & providers.Rules.PLUS_ADDRESSING: local_part = local_part.split('+')[0] - if provider.Flags & providers.Rules.DASH_ADDRESSING: - local_part = local_part.split('-')[0] return Result(email_address, '@'.join([local_part, domain_part]), mx_records, provider.__name__ if provider else None) diff --git a/email_normalize/providers.py b/email_normalize/providers.py index 098b73a..ad30543 100644 --- a/email_normalize/providers.py +++ b/email_normalize/providers.py @@ -12,7 +12,7 @@ class Rules(enum.Flag): Used to determine how to normalize provider specific email addresses. """ - DASH_ADDRESSING = enum.auto() + NONE = 0 PLUS_ADDRESSING = enum.auto() LOCAL_PART_AS_HOSTNAME = enum.auto() STRIP_PERIODS = enum.auto() @@ -55,7 +55,10 @@ class Rackspace(MailboxProvider): class Yahoo(MailboxProvider): - Flags: Rules = Rules.DASH_ADDRESSING + # No normalization rules — Yahoo disposable addresses use the format + # nickname-keyword@, where the nickname alone is not a deliverable + # address. See https://help.yahoo.com/kb/SLN28815.html + Flags: Rules = Rules.NONE MXDomains: typing.Set[str] = {'yahoodns.net'} diff --git a/tests/test_normalize.py b/tests/test_normalize.py index f64fe55..c1231c7 100644 --- a/tests/test_normalize.py +++ b/tests/test_normalize.py @@ -111,7 +111,7 @@ def test_yahoo(self): address = '{}@{}'.format(local_part, domain_part) mx_records = [(1, 'mta5.am0.yahoodns.net')] self._perform_test( - address, '{}@{}'.format(local_part.split('-', 1)[0], domain_part), + address, '{}@{}'.format(local_part, domain_part), mx_records, 'Yahoo') def test_yandex(self):