mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-22 02:16:42 +00:00
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).
This commit is contained in:
parent
7d3b4149ae
commit
9a1a186197
@ -3,7 +3,7 @@ from twisted.trial import unittest
|
|||||||
from twisted.internet import defer
|
from twisted.internet import defer
|
||||||
from twisted.python import usage
|
from twisted.python import usage
|
||||||
from allmydata.util import configutil
|
from allmydata.util import configutil
|
||||||
from ..common_util import run_cli
|
from ..common_util import run_cli, parse_cli
|
||||||
|
|
||||||
class Config(unittest.TestCase):
|
class Config(unittest.TestCase):
|
||||||
def read_config(self, basedir):
|
def read_config(self, basedir):
|
||||||
@ -11,31 +11,25 @@ class Config(unittest.TestCase):
|
|||||||
config = configutil.get_config(tahoe_cfg)
|
config = configutil.get_config(tahoe_cfg)
|
||||||
return config
|
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):
|
def test_client_unrecognized_options(self):
|
||||||
tests = [
|
tests = [
|
||||||
("--listen", ("create-client", "--listen=tcp")),
|
("--listen", "create-client", "--listen=tcp"),
|
||||||
("--hostname", ("create-client", "--hostname=computer")),
|
("--hostname", "create-client", "--hostname=computer"),
|
||||||
("--port", ("create-client", "--port=unix:/var/tahoe/socket",
|
("--port",
|
||||||
"--location=tor:myservice.onion:12345")),
|
"create-client", "--port=unix:/var/tahoe/socket",
|
||||||
("--port", ("create-client", "--port=unix:/var/tahoe/socket")),
|
"--location=tor:myservice.onion:12345"),
|
||||||
("--location", ("create-client", "--location=tor:myservice.onion:12345")),
|
("--port", "create-client", "--port=unix:/var/tahoe/socket"),
|
||||||
("--listen", ("create-client", "--listen=tor")),
|
("--location",
|
||||||
("--listen", ("create-client", "--listen=i2p")),
|
"create-client", "--location=tor:myservice.onion:12345"),
|
||||||
|
("--listen", "create-client", "--listen=tor"),
|
||||||
|
("--listen", "create-client", "--listen=i2p"),
|
||||||
]
|
]
|
||||||
for test in tests:
|
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
|
@defer.inlineCallbacks
|
||||||
def test_client(self):
|
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.location"), "tor:myservice.onion:12345")
|
||||||
self.assertEqual(cfg.get("node", "tub.port"), "unix:/var/tahoe/socket")
|
self.assertEqual(cfg.get("node", "tub.port"), "unix:/var/tahoe/socket")
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
|
||||||
def test_node_listen_tcp_no_hostname(self):
|
def test_node_listen_tcp_no_hostname(self):
|
||||||
basedir = self.mktemp()
|
basedir = self.mktemp()
|
||||||
d = run_cli("create-node", "--listen=tcp", basedir)
|
e = self.assertRaises(usage.UsageError,
|
||||||
e = yield self.assertFailure(d, usage.UsageError)
|
parse_cli,
|
||||||
|
"create-node", "--listen=tcp", basedir)
|
||||||
self.assertIn("--listen=tcp requires --hostname=", str(e))
|
self.assertIn("--listen=tcp requires --hostname=", str(e))
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def test_node_listen_tor(self):
|
def test_node_listen_tor(self):
|
||||||
basedir = self.mktemp()
|
basedir = self.mktemp()
|
||||||
try:
|
d = run_cli("create-node", "--listen=tor", basedir)
|
||||||
rc, out, err = yield run_cli("create-node", "--listen=tor", basedir)
|
e = yield self.assertFailure(d, NotImplementedError)
|
||||||
except NotImplementedError, e:
|
self.assertEqual(str(e), "This feature addition is being tracked by this ticket:" +
|
||||||
self.failUnlessEqual(str(e), "This feature addition is being tracked by this ticket:" +
|
"https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2490")
|
||||||
"https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2490")
|
|
||||||
else:
|
|
||||||
self.fail("NotImplementedError expected to be raised")
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def test_node_listen_i2p(self):
|
def test_node_listen_i2p(self):
|
||||||
basedir = self.mktemp()
|
basedir = self.mktemp()
|
||||||
try:
|
d = run_cli("create-node", "--listen=i2p", basedir)
|
||||||
rc, out, err = yield run_cli("create-node", "--listen=i2p", basedir)
|
e = yield self.assertFailure(d, NotImplementedError)
|
||||||
except NotImplementedError, e:
|
self.failUnlessEqual(str(e), "This feature addition is being tracked by this ticket:" +
|
||||||
self.failUnlessEqual(str(e), "This feature addition is being tracked by this ticket:" +
|
"https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2490")
|
||||||
"https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2490")
|
|
||||||
else:
|
|
||||||
self.fail("NotImplementedError expected to be raised")
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
|
||||||
def test_node_port_only(self):
|
def test_node_port_only(self):
|
||||||
basedir = self.mktemp()
|
e = self.assertRaises(usage.UsageError,
|
||||||
try:
|
parse_cli,
|
||||||
rc, out, err = yield run_cli("create-node", "--port=unix:/var/tahoe/socket", basedir)
|
"create-node", "--port=unix:/var/tahoe/socket")
|
||||||
except usage.UsageError, e:
|
self.assertEqual(str(e), "The --port option must be used with the --location option.")
|
||||||
self.failUnlessEqual(str(e), "The --port option must be used with the --location option.")
|
|
||||||
else:
|
|
||||||
self.fail("UsageError expected to be raised")
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
|
||||||
def test_node_location_only(self):
|
def test_node_location_only(self):
|
||||||
basedir = self.mktemp()
|
e = self.assertRaises(usage.UsageError,
|
||||||
try:
|
parse_cli,
|
||||||
rc, out, err = yield run_cli("create-node", "--location=tor:myservice.onion:12345", basedir)
|
"create-node", "--location=tor:myservice.onion:12345")
|
||||||
except usage.UsageError, e:
|
self.assertEqual(str(e), "The --location option must be used with the --port option.")
|
||||||
self.failUnlessEqual(str(e), "The --location option must be used with the --port option.")
|
|
||||||
else:
|
|
||||||
self.fail("UsageError expected to be raised")
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def test_introducer(self):
|
def test_introducer(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user