From 9a1a18619775df36e91a2222b915af9b441ba835 Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Fri, 9 Sep 2016 17:55:58 -0700 Subject: [PATCH] simplify tests: use parse_cli, assertRaises, assertFailure parse_cli() got added during the async-CLI-dispatch work assertRaises/assertFailure have been in Twisted for a while, but I only learned about them recently. Over time I'm looking forward to changing all tahoe tests to use them (and getting rid of ShouldFailMixin/etc). --- src/allmydata/test/cli/test_create.py | 90 +++++++++++---------------- 1 file changed, 35 insertions(+), 55 deletions(-) diff --git a/src/allmydata/test/cli/test_create.py b/src/allmydata/test/cli/test_create.py index 37b791ad6..f08444916 100644 --- a/src/allmydata/test/cli/test_create.py +++ b/src/allmydata/test/cli/test_create.py @@ -3,7 +3,7 @@ from twisted.trial import unittest from twisted.internet import defer from twisted.python import usage from allmydata.util import configutil -from ..common_util import run_cli +from ..common_util import run_cli, parse_cli class Config(unittest.TestCase): def read_config(self, basedir): @@ -11,31 +11,25 @@ class Config(unittest.TestCase): config = configutil.get_config(tahoe_cfg) return config - @defer.inlineCallbacks - def _test_option_not_recognized(self, option, *args): - basedir = self.mktemp() - try: - params = args[0] + (basedir,) - rc, out, err = yield run_cli(*params) - except usage.UsageError, e: - self.failUnlessEqual(str(e), "option %s not recognized" % (option,)) - else: - self.fail("UsageError expected to be raised") - - @defer.inlineCallbacks def test_client_unrecognized_options(self): tests = [ - ("--listen", ("create-client", "--listen=tcp")), - ("--hostname", ("create-client", "--hostname=computer")), - ("--port", ("create-client", "--port=unix:/var/tahoe/socket", - "--location=tor:myservice.onion:12345")), - ("--port", ("create-client", "--port=unix:/var/tahoe/socket")), - ("--location", ("create-client", "--location=tor:myservice.onion:12345")), - ("--listen", ("create-client", "--listen=tor")), - ("--listen", ("create-client", "--listen=i2p")), + ("--listen", "create-client", "--listen=tcp"), + ("--hostname", "create-client", "--hostname=computer"), + ("--port", + "create-client", "--port=unix:/var/tahoe/socket", + "--location=tor:myservice.onion:12345"), + ("--port", "create-client", "--port=unix:/var/tahoe/socket"), + ("--location", + "create-client", "--location=tor:myservice.onion:12345"), + ("--listen", "create-client", "--listen=tor"), + ("--listen", "create-client", "--listen=i2p"), ] for test in tests: - yield self._test_option_not_recognized(test[0], test[1]) + option = test[0] + verb = test[1] + args = test[2:] + e = self.assertRaises(usage.UsageError, parse_cli, verb, *args) + self.assertIn("option %s not recognized" % (option,), str(e)) @defer.inlineCallbacks def test_client(self): @@ -88,54 +82,40 @@ class Config(unittest.TestCase): self.assertEqual(cfg.get("node", "tub.location"), "tor:myservice.onion:12345") self.assertEqual(cfg.get("node", "tub.port"), "unix:/var/tahoe/socket") - @defer.inlineCallbacks def test_node_listen_tcp_no_hostname(self): basedir = self.mktemp() - d = run_cli("create-node", "--listen=tcp", basedir) - e = yield self.assertFailure(d, usage.UsageError) + e = self.assertRaises(usage.UsageError, + parse_cli, + "create-node", "--listen=tcp", basedir) self.assertIn("--listen=tcp requires --hostname=", str(e)) @defer.inlineCallbacks def test_node_listen_tor(self): basedir = self.mktemp() - try: - rc, out, err = yield run_cli("create-node", "--listen=tor", basedir) - except NotImplementedError, e: - self.failUnlessEqual(str(e), "This feature addition is being tracked by this ticket:" + - "https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2490") - else: - self.fail("NotImplementedError expected to be raised") + d = run_cli("create-node", "--listen=tor", basedir) + e = yield self.assertFailure(d, NotImplementedError) + self.assertEqual(str(e), "This feature addition is being tracked by this ticket:" + + "https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2490") @defer.inlineCallbacks def test_node_listen_i2p(self): basedir = self.mktemp() - try: - rc, out, err = yield run_cli("create-node", "--listen=i2p", basedir) - except NotImplementedError, e: - self.failUnlessEqual(str(e), "This feature addition is being tracked by this ticket:" + - "https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2490") - else: - self.fail("NotImplementedError expected to be raised") + d = run_cli("create-node", "--listen=i2p", basedir) + e = yield self.assertFailure(d, NotImplementedError) + self.failUnlessEqual(str(e), "This feature addition is being tracked by this ticket:" + + "https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2490") - @defer.inlineCallbacks def test_node_port_only(self): - basedir = self.mktemp() - try: - rc, out, err = yield run_cli("create-node", "--port=unix:/var/tahoe/socket", basedir) - except usage.UsageError, e: - self.failUnlessEqual(str(e), "The --port option must be used with the --location option.") - else: - self.fail("UsageError expected to be raised") + e = self.assertRaises(usage.UsageError, + parse_cli, + "create-node", "--port=unix:/var/tahoe/socket") + self.assertEqual(str(e), "The --port option must be used with the --location option.") - @defer.inlineCallbacks def test_node_location_only(self): - basedir = self.mktemp() - try: - rc, out, err = yield run_cli("create-node", "--location=tor:myservice.onion:12345", basedir) - except usage.UsageError, e: - self.failUnlessEqual(str(e), "The --location option must be used with the --port option.") - else: - self.fail("UsageError expected to be raised") + e = self.assertRaises(usage.UsageError, + parse_cli, + "create-node", "--location=tor:myservice.onion:12345") + self.assertEqual(str(e), "The --location option must be used with the --port option.") @defer.inlineCallbacks def test_introducer(self):