From 42db47006bddadb11d94ca21d46d4ac09e214af8 Mon Sep 17 00:00:00 2001 From: Russell Jones Date: Wed, 1 Oct 2014 23:57:29 +0000 Subject: [PATCH 1/2] Mock network based tests so they are fast, deterministic, and can run with no network access. --- tests/addresslib/validator_test.py | 36 ++++++++++++++---------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/tests/addresslib/validator_test.py b/tests/addresslib/validator_test.py index bb3ce287..a840b8b2 100644 --- a/tests/addresslib/validator_test.py +++ b/tests/addresslib/validator_test.py @@ -59,12 +59,12 @@ def invalid_localparts(strip_delimiters=False): def mock_exchanger_lookup(arg, metrics=False): mtimes = {'mx_lookup': 10, 'dns_lookup': 20, 'mx_conn': 30} if metrics is True: - if arg == 'ai' or arg == 'mailgun.org' or arg == 'fakecompany.mailgun.org': + if arg in ['ai', 'mailgun.org', 'fakecompany.mailgun.org']: return ('', mtimes) else: return (None, mtimes) else: - if arg == 'ai' or arg == 'mailgun.org' or arg == 'fakecompany.mailgun.org': + if arg in ['ai', 'mailgun.org', 'fakecompany.mailgun.org']: return '' else: return None @@ -185,37 +185,35 @@ def test_parse_syntax_only_false(): assert_equal(unpar, all_invalid_list) -def test_mx_lookup(): - # skip network tests during development - skip_if_asked() - +@patch('flanker.addresslib.validate.connect_to_mail_exchanger') +@patch('flanker.addresslib.validate.lookup_domain') +def test_mx_lookup(ld, cmx): # has MX, has MX server + ld.return_value = ['mx1.fake.mailgun.com', 'mx2.fake.mailgun.com'] + cmx.return_value = 'mx1.fake.mailgun.com' + addr = address.validate_address('username@mailgun.com') assert_not_equal(addr, None) # has fallback A, has MX server + ld.return_value = ['domain.com'] + cmx.return_value = 'domain.com' + addr = address.validate_address('username@domain.com') assert_not_equal(addr, None) # has MX, no server answers + ld.return_value = ['mx.example.com'] + cmx.return_value = None + addr = address.validate_address('username@example.com') assert_equal(addr, None) # no MX - addr = address.validate_address('username@no-dns-records-for-domain.com') - assert_equal(addr, None) - + ld.return_value = [] + cmx.return_value = None -def test_mx_connect(): - # skip network tests during development - skip_if_asked() - - # connect - addr = address.validate_address('username@mailgun.com') - assert_not_equal(addr, None) - - # don't connect - addr = address.validate_address('username@example.com') + addr = address.validate_address('username@no-dns-records-for-domain.com') assert_equal(addr, None) From 9c77c3a19d755e5574fa3da2fda2e2c6ad5bcc75 Mon Sep 17 00:00:00 2001 From: Russell Jones Date: Wed, 1 Oct 2014 23:59:53 +0000 Subject: [PATCH 2/2] Version bump, I always forget to version bump... --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0a7579e9..ed38ffb4 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup(name='flanker', - version='0.4.20', + version='0.4.21', description='Mailgun Parsing Tools', long_description=open('README.rst').read(), classifiers=[],