diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2010-11-13 00:28:53 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2010-11-13 00:28:53 (GMT) |
commit | 45ca9874955b1eaf3d941b7a278b594fad50d4ee (patch) | |
tree | c6958dc50d9cef87ee70af1f7fd1ea11d36eca9c | |
parent | 67a93ae4ed80df1e27828c49826047310f95b154 (diff) | |
download | cpython-45ca9874955b1eaf3d941b7a278b594fad50d4ee.zip cpython-45ca9874955b1eaf3d941b7a278b594fad50d4ee.tar.gz cpython-45ca9874955b1eaf3d941b7a278b594fad50d4ee.tar.bz2 |
Switch from gmane to another provider for NNTP tests (as gmane isn't reliable
enough). Also, use setUpClass in order to connect only once per test run.
-rw-r--r-- | Lib/test/test_nntplib.py | 77 |
1 files changed, 45 insertions, 32 deletions
diff --git a/Lib/test/test_nntplib.py b/Lib/test/test_nntplib.py index 6aa0cb5..e97b9cc 100644 --- a/Lib/test/test_nntplib.py +++ b/Lib/test/test_nntplib.py @@ -160,21 +160,6 @@ class NetworkedNNTPTestsMixin: self.check_article_resp(resp, article, last) self.assertEqual(article.lines, head.lines + [b''] + body.lines) - def test_quit(self): - self.server.quit() - self.server = None - - def test_login(self): - baduser = "notarealuser" - badpw = "notarealpassword" - # Check that bogus credentials cause failure - self.assertRaises(nntplib.NNTPError, self.server.login, - user=baduser, password=badpw, usenetrc=False) - # FIXME: We should check that correct credentials succeed, but that - # would require valid details for some server somewhere to be in the - # test suite, I think. Gmane is anonymous, at least as used for the - # other tests. - def test_capabilities(self): # The server under test implements NNTP version 2 and has a # couple of well-known capabilities. Just sanity check that we @@ -207,6 +192,25 @@ class NetworkedNNTPTestsMixin: # Check that trying starttls when it's already active fails. self.assertRaises(ValueError, self.server.starttls) + def test_zlogin(self): + # This test must be the penultimate because further commands will be + # refused. + baduser = "notarealuser" + badpw = "notarealpassword" + # Check that bogus credentials cause failure + self.assertRaises(nntplib.NNTPError, self.server.login, + user=baduser, password=badpw, usenetrc=False) + # FIXME: We should check that correct credentials succeed, but that + # would require valid details for some server somewhere to be in the + # test suite, I think. Gmane is anonymous, at least as used for the + # other tests. + + def test_zzquit(self): + # This test must be called last, hence the name + cls = type(self) + self.server.quit() + cls.server = None + class NetworkedNNTPTests(NetworkedNNTPTestsMixin, unittest.TestCase): # This server supports STARTTLS (gmane doesn't) @@ -214,33 +218,42 @@ class NetworkedNNTPTests(NetworkedNNTPTestsMixin, unittest.TestCase): GROUP_NAME = 'fr.comp.lang.python' GROUP_PAT = 'fr.comp.lang.*' - def setUp(self): + @classmethod + def setUpClass(cls): support.requires("network") - with support.transient_internet(self.NNTP_HOST): - self.server = NNTP(self.NNTP_HOST, timeout=TIMEOUT, usenetrc=False) + with support.transient_internet(cls.NNTP_HOST): + cls.server = NNTP(cls.NNTP_HOST, timeout=TIMEOUT, usenetrc=False) - def tearDown(self): - if self.server is not None: - self.server.quit() + @classmethod + def tearDownClass(cls): + if cls.server is not None: + cls.server.quit() if _have_ssl: class NetworkedNNTP_SSLTests(NetworkedNNTPTestsMixin, unittest.TestCase): - NNTP_HOST = 'snews.gmane.org' - GROUP_NAME = 'gmane.comp.python.devel' - GROUP_PAT = 'gmane.comp.python.d*' - def setUp(self): + # Technical limits for this public NNTP server (see http://www.aioe.org): + # "Only two concurrent connections per IP address are allowed and + # 400 connections per day are accepted from each IP address." + + NNTP_HOST = 'nntp.aioe.org' + GROUP_NAME = 'comp.lang.python' + GROUP_PAT = 'comp.lang.*' + + @classmethod + def setUpClass(cls): support.requires("network") - with support.transient_internet(self.NNTP_HOST): - self.server = nntplib.NNTP_SSL(self.NNTP_HOST, timeout=TIMEOUT, - usenetrc=False) + with support.transient_internet(cls.NNTP_HOST): + cls.server = nntplib.NNTP_SSL(cls.NNTP_HOST, timeout=TIMEOUT, + usenetrc=False) - def tearDown(self): - if self.server is not None: - self.server.quit() + @classmethod + def tearDownClass(cls): + if cls.server is not None: + cls.server.quit() - # Disabled with gmane as it produces too much data + # Disabled as it produces too much data test_list = None # Disabled as the connection will already be encrypted. |