mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 15:03:34 +00:00
MITNameTest: Mock network access from Hesiod lookups.
The purpose of these tests is to check the logic, not that DNS is working on the relevant machine.
This commit is contained in:
@@ -17,6 +17,8 @@ from zerver.lib.test_helpers import AuthedTestCase
|
|||||||
from zerver.models import get_user_profile_by_email
|
from zerver.models import get_user_profile_by_email
|
||||||
from zerver.lib.test_runner import slow
|
from zerver.lib.test_runner import slow
|
||||||
|
|
||||||
|
import DNS
|
||||||
|
import mock
|
||||||
import time
|
import time
|
||||||
import ujson
|
import ujson
|
||||||
from six.moves import urllib
|
from six.moves import urllib
|
||||||
@@ -25,17 +27,25 @@ from six.moves import range
|
|||||||
|
|
||||||
class MITNameTest(TestCase):
|
class MITNameTest(TestCase):
|
||||||
def test_valid_hesiod(self):
|
def test_valid_hesiod(self):
|
||||||
self.assertEquals(compute_mit_user_fullname("starnine@mit.edu"), "Athena Consulting Exchange User")
|
with mock.patch('DNS.dnslookup', return_value=[['starnine:*:84233:101:Athena Consulting Exchange User,,,:/mit/starnine:/bin/bash']]):
|
||||||
self.assertEquals(compute_mit_user_fullname("sipbexch@mit.edu"), "Exch Sipb")
|
self.assertEquals(compute_mit_user_fullname("starnine@mit.edu"), "Athena Consulting Exchange User")
|
||||||
|
with mock.patch('DNS.dnslookup', return_value=[['sipbexch:*:87824:101:Exch Sipb,,,:/mit/sipbexch:/bin/athena/bash']]):
|
||||||
|
self.assertEquals(compute_mit_user_fullname("sipbexch@mit.edu"), "Exch Sipb")
|
||||||
|
|
||||||
def test_invalid_hesiod(self):
|
def test_invalid_hesiod(self):
|
||||||
self.assertEquals(compute_mit_user_fullname("1234567890@mit.edu"), "1234567890@mit.edu")
|
with mock.patch('DNS.dnslookup', side_effect=DNS.Base.ServerError('DNS query status: NXDOMAIN', 3)):
|
||||||
self.assertEquals(compute_mit_user_fullname("ec-discuss@mit.edu"), "ec-discuss@mit.edu")
|
self.assertEquals(compute_mit_user_fullname("1234567890@mit.edu"), "1234567890@mit.edu")
|
||||||
|
with mock.patch('DNS.dnslookup', side_effect=DNS.Base.ServerError('DNS query status: NXDOMAIN', 3)):
|
||||||
|
self.assertEquals(compute_mit_user_fullname("ec-discuss@mit.edu"), "ec-discuss@mit.edu")
|
||||||
|
|
||||||
def test_mailinglist(self):
|
def test_mailinglist(self):
|
||||||
self.assertRaises(ValidationError, not_mit_mailing_list, "1234567890@mit.edu")
|
with mock.patch('DNS.dnslookup', side_effect=DNS.Base.ServerError('DNS query status: NXDOMAIN', 3)):
|
||||||
self.assertRaises(ValidationError, not_mit_mailing_list, "ec-discuss@mit.edu")
|
self.assertRaises(ValidationError, not_mit_mailing_list, "1234567890@mit.edu")
|
||||||
|
with mock.patch('DNS.dnslookup', side_effect=DNS.Base.ServerError('DNS query status: NXDOMAIN', 3)):
|
||||||
|
self.assertRaises(ValidationError, not_mit_mailing_list, "ec-discuss@mit.edu")
|
||||||
def test_notmailinglist(self):
|
def test_notmailinglist(self):
|
||||||
self.assertTrue(not_mit_mailing_list("sipbexch@mit.edu"))
|
with mock.patch('DNS.dnslookup', return_value=[['POP IMAP.EXCHANGE.MIT.EDU starnine']]):
|
||||||
|
self.assertTrue(not_mit_mailing_list("sipbexch@mit.edu"))
|
||||||
|
|
||||||
class RateLimitTests(AuthedTestCase):
|
class RateLimitTests(AuthedTestCase):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user