From 597542dc7791aabfe3688fcd09227aeb85ecdab1 Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Tue, 3 Feb 2015 22:09:40 -0800 Subject: [PATCH] test that web.static= is really treated as a relative path Also ssh.authorized_keys_file . --- src/allmydata/test/test_client.py | 29 +++++++++++++++++++++++++++ src/allmydata/test/test_introducer.py | 16 ++++++++++++++- src/allmydata/webish.py | 1 + 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/allmydata/test/test_client.py b/src/allmydata/test/test_client.py index f5b0526b..94bfbdf5 100644 --- a/src/allmydata/test/test_client.py +++ b/src/allmydata/test/test_client.py @@ -6,6 +6,7 @@ import allmydata from allmydata.node import Node, OldConfigError, OldConfigOptionError, MissingConfigEntry, UnescapedHashError from allmydata import client from allmydata.storage_client import StorageFarmBroker +from allmydata.manhole import AuthorizedKeysManhole from allmydata.util import base32, fileutil from allmydata.interfaces import IFilesystemNode, IFileNode, \ IImmutableFileNode, IMutableFileNode, IDirectoryNode @@ -174,6 +175,34 @@ class Basic(testutil.ReallyEqualMixin, unittest.TestCase): "reserved_space = bogus\n") self.failUnlessRaises(ValueError, client.Client, basedir) + def test_web_staticdir(self): + basedir = u"client.Basic.test_web_staticdir" + os.mkdir(basedir) + fileutil.write(os.path.join(basedir, "tahoe.cfg"), + BASECONFIG + + "[node]\n" + + "web.port = tcp:0:interface=127.0.0.1\n" + + "web.static = relative\n") + c = client.Client(basedir) + w = c.getServiceNamed("webish") + abs_basedir = fileutil.abspath_expanduser_unicode(basedir) + expected = fileutil.abspath_expanduser_unicode(u"relative", abs_basedir) + self.failUnlessReallyEqual(w.staticdir, expected) + + def test_manhole_keyfile(self): + basedir = u"client.Basic.test_manhole_keyfile" + os.mkdir(basedir) + fileutil.write(os.path.join(basedir, "tahoe.cfg"), + BASECONFIG + + "[node]\n" + + "ssh.port = tcp:0:interface=127.0.0.1\n" + + "ssh.authorized_keys_file = relative\n") + c = client.Client(basedir) + m = [s for s in c if isinstance(s, AuthorizedKeysManhole)][0] + abs_basedir = fileutil.abspath_expanduser_unicode(basedir) + expected = fileutil.abspath_expanduser_unicode(u"relative", abs_basedir) + self.failUnlessReallyEqual(m.keyfile, expected) + def _permute(self, sb, key): return [ s.get_longname() for s in sb.get_servers_for_psi(key) ] diff --git a/src/allmydata/test/test_introducer.py b/src/allmydata/test/test_introducer.py index 21adb814..475b04db 100644 --- a/src/allmydata/test/test_introducer.py +++ b/src/allmydata/test/test_introducer.py @@ -28,7 +28,7 @@ class LoggingMultiService(service.MultiService): def log(self, msg, **kw): log.msg(msg, **kw) -class Node(testutil.SignalMixin, unittest.TestCase): +class Node(testutil.SignalMixin, testutil.ReallyEqualMixin, unittest.TestCase): def test_furl(self): basedir = "introducer.IntroducerNode.test_furl" os.mkdir(basedir) @@ -74,6 +74,20 @@ class Node(testutil.SignalMixin, unittest.TestCase): d.addCallback(_check_furl) return d + def test_web_static(self): + basedir = u"introducer.Node.test_web_static" + os.mkdir(basedir) + fileutil.write(os.path.join(basedir, "tahoe.cfg"), + "[node]\n" + + "web.port = tcp:0:interface=127.0.0.1\n" + + "web.static = relative\n") + c = IntroducerNode(basedir) + w = c.getServiceNamed("webish") + abs_basedir = fileutil.abspath_expanduser_unicode(basedir) + expected = fileutil.abspath_expanduser_unicode(u"relative", abs_basedir) + self.failUnlessReallyEqual(w.staticdir, expected) + + class ServiceMixin: def setUp(self): self.parent = LoggingMultiService() diff --git a/src/allmydata/webish.py b/src/allmydata/webish.py index 813856cb..e2029fee 100644 --- a/src/allmydata/webish.py +++ b/src/allmydata/webish.py @@ -147,6 +147,7 @@ class WebishServer(service.MultiService): self.site = site = appserver.NevowSite(self.root) self.site.requestFactory = MyRequest self.site.remember(MyExceptionHandler(), inevow.ICanHandleException) + self.staticdir = staticdir # so tests can check if staticdir: self.root.putChild("static", static.File(staticdir)) if re.search(r'^\d', webport): -- 2.45.2