mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-01-31 16:36:20 +00:00
validate_config: improve tests
closes ticket:2809
This commit is contained in:
parent
2732c37941
commit
74dc7194b6
@ -179,7 +179,8 @@ class Client(node.Node, pollmixin.PollMixin):
|
||||
node.Node.__init__(self, basedir)
|
||||
# All tub.registerReference must happen *after* we upcall, since
|
||||
# that's what does tub.setLocation()
|
||||
configutil.validate_config(self.config_fname, self.config, _valid_config_sections())
|
||||
configutil.validate_config(self.config_fname, self.config,
|
||||
_valid_config_sections())
|
||||
self._magic_folder = None
|
||||
self.started_timestamp = time.time()
|
||||
self.logSource="Client"
|
||||
|
@ -97,27 +97,7 @@ def write_node_config(c, config):
|
||||
c.write("#ssh.authorized_keys_file = ~/.ssh/authorized_keys\n")
|
||||
c.write("\n")
|
||||
|
||||
|
||||
def create_node(config, out=sys.stdout, err=sys.stderr):
|
||||
basedir = config['basedir']
|
||||
# This should always be called with an absolute Unicode basedir.
|
||||
precondition(isinstance(basedir, unicode), basedir)
|
||||
|
||||
if os.path.exists(basedir):
|
||||
if listdir_unicode(basedir):
|
||||
print >>err, "The base directory %s is not empty." % quote_local_unicode_path(basedir)
|
||||
print >>err, "To avoid clobbering anything, I am going to quit now."
|
||||
print >>err, "Please use a different directory, or empty this one."
|
||||
return -1
|
||||
# we're willing to use an empty directory
|
||||
else:
|
||||
os.mkdir(basedir)
|
||||
write_tac(basedir, "client")
|
||||
|
||||
c = open(os.path.join(basedir, "tahoe.cfg"), "w")
|
||||
|
||||
write_node_config(c, config)
|
||||
|
||||
def write_client_config(c, config):
|
||||
c.write("[client]\n")
|
||||
c.write("# Which services should this client connect to?\n")
|
||||
c.write("introducer.furl = %s\n" % config.get("introducer", ""))
|
||||
@ -149,6 +129,27 @@ def create_node(config, out=sys.stdout, err=sys.stderr):
|
||||
c.write("enabled = false\n")
|
||||
c.write("\n")
|
||||
|
||||
def create_node(config, out=sys.stdout, err=sys.stderr):
|
||||
basedir = config['basedir']
|
||||
# This should always be called with an absolute Unicode basedir.
|
||||
precondition(isinstance(basedir, unicode), basedir)
|
||||
|
||||
if os.path.exists(basedir):
|
||||
if listdir_unicode(basedir):
|
||||
print >>err, "The base directory %s is not empty." % quote_local_unicode_path(basedir)
|
||||
print >>err, "To avoid clobbering anything, I am going to quit now."
|
||||
print >>err, "Please use a different directory, or empty this one."
|
||||
return -1
|
||||
# we're willing to use an empty directory
|
||||
else:
|
||||
os.mkdir(basedir)
|
||||
write_tac(basedir, "client")
|
||||
|
||||
c = open(os.path.join(basedir, "tahoe.cfg"), "w")
|
||||
|
||||
write_node_config(c, config)
|
||||
write_client_config(c, config)
|
||||
|
||||
c.close()
|
||||
|
||||
from allmydata.util import fileutil
|
||||
|
@ -5,6 +5,8 @@ from twisted.trial import unittest
|
||||
from allmydata.util import configutil
|
||||
from allmydata.test.no_network import GridTestMixin
|
||||
from .cli.test_cli import CLITestMixin
|
||||
from ..scripts import create_node
|
||||
from .. import client
|
||||
|
||||
|
||||
class ConfigUtilTests(CLITestMixin, GridTestMixin, unittest.TestCase):
|
||||
@ -54,11 +56,12 @@ class ConfigUtilTests(CLITestMixin, GridTestMixin, unittest.TestCase):
|
||||
f.write('[node]\nvalid = foo\ninvalid = foo\n')
|
||||
|
||||
config = configutil.get_config(fname)
|
||||
self.assertRaises(
|
||||
e = self.assertRaises(
|
||||
configutil.UnknownConfigError,
|
||||
configutil.validate_config,
|
||||
fname, config, dict(node=['valid']),
|
||||
)
|
||||
self.assertIn("section [node] contains unknown option 'invalid'", str(e))
|
||||
|
||||
def test_config_validation_invalid_section(self):
|
||||
d = self.mktemp()
|
||||
@ -69,8 +72,27 @@ class ConfigUtilTests(CLITestMixin, GridTestMixin, unittest.TestCase):
|
||||
f.write('[node]\nvalid = foo\n[invalid]\n')
|
||||
|
||||
config = configutil.get_config(fname)
|
||||
self.assertRaises(
|
||||
e = self.assertRaises(
|
||||
configutil.UnknownConfigError,
|
||||
configutil.validate_config,
|
||||
fname, config, dict(node=['valid']),
|
||||
)
|
||||
self.assertIn("contains unknown section [invalid]", str(e))
|
||||
|
||||
def test_create_client_config(self):
|
||||
d = self.mktemp()
|
||||
os.mkdir(d)
|
||||
fname = os.path.join(d, 'tahoe.cfg')
|
||||
|
||||
with open(fname, 'w') as f:
|
||||
opts = {"nickname": "nick",
|
||||
"webport": "tcp:3456",
|
||||
"hide-ip": False,
|
||||
}
|
||||
create_node.write_node_config(f, opts)
|
||||
create_node.write_client_config(f, opts)
|
||||
|
||||
config = configutil.get_config(fname)
|
||||
# should succeed, no exceptions
|
||||
configutil.validate_config(fname, config,
|
||||
client._valid_config_sections())
|
||||
|
Loading…
x
Reference in New Issue
Block a user