mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-21 02:01:31 +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.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):
|
||||
|
Loading…
x
Reference in New Issue
Block a user