Permalink
Browse files

Relay and transit url conf from env vars

Added the click option to look for relay and transit urls in environment
variables. If you're running your own relay/transit servers (such as
inside a corporate firewall), this will make client's lives easier.
  • Loading branch information...
jtdoepke committed Oct 2, 2017
1 parent 7ad0069 commit b362adf7ca5c494aecdbce827ef6e3044194f38e
Showing with 53 additions and 0 deletions.
  1. +2 −0 src/wormhole/cli/cli.py
  2. +51 −0 src/wormhole/test/test_args.py
View
@@ -60,11 +60,13 @@ def get_command(self, ctx, cmd_name):
"--appid", default=None, metavar="APPID", help="appid to use")
@click.option(
"--relay-url", default=public_relay.RENDEZVOUS_RELAY,
envvar='WORMHOLE_RELAY_URL',
metavar="URL",
help="rendezvous relay to use",
)
@click.option(
"--transit-helper", default=public_relay.TRANSIT_RELAY,
envvar='WORMHOLE_TRANSIT_HELPER',
metavar="tcp:HOST:PORT",
help="transit relay to use",
)
@@ -1,4 +1,6 @@
import os
import sys
import mock
from twisted.trial import unittest
from ..cli.public_relay import RENDEZVOUS_RELAY, TRANSIT_RELAY
from .common import config
@@ -71,6 +73,31 @@ def test_zeromode(self):
cfg = config("send", "-0", "fn")
self.assertEqual(cfg.zeromode, True)
def test_relay_env_var(self):
relay_url = str(mock.sentinel.relay_url)
with mock.patch.dict(os.environ, WORMHOLE_RELAY_URL=relay_url):
cfg = config("send")
self.assertEqual(cfg.relay_url, relay_url)
# Make sure cmd line option overrides environment variable
relay_url_2 = str(mock.sentinel.relay_url_2)
with mock.patch.dict(os.environ, WORMHOLE_RELAY_URL=relay_url):
cfg = config("--relay-url", relay_url_2, "send")
self.assertEqual(cfg.relay_url, relay_url_2)
def test_transit_env_var(self):
transit_url = str(mock.sentinel.transit_url)
with mock.patch.dict(os.environ, WORMHOLE_TRANSIT_HELPER=transit_url):
cfg = config("send")
self.assertEqual(cfg.transit_helper, transit_url)
# Make sure cmd line option overrides environment variable
transit_url_2 = str(mock.sentinel.transit_url_2)
with mock.patch.dict(os.environ, WORMHOLE_TRANSIT_HELPER=transit_url):
cfg = config("--transit-helper", transit_url_2, "send")
self.assertEqual(cfg.transit_helper, transit_url_2)
class Receive(unittest.TestCase):
def test_baseline(self):
cfg = config("receive")
@@ -140,6 +167,30 @@ def test_output_file(self):
cfg = config("receive", "--output-file", "fn")
self.assertEqual(cfg.output_file, u"fn")
def test_relay_env_var(self):
relay_url = str(mock.sentinel.relay_url)
with mock.patch.dict(os.environ, WORMHOLE_RELAY_URL=relay_url):
cfg = config("receive")
self.assertEqual(cfg.relay_url, relay_url)
# Make sure cmd line option overrides environment variable
relay_url_2 = str(mock.sentinel.relay_url_2)
with mock.patch.dict(os.environ, WORMHOLE_RELAY_URL=relay_url):
cfg = config("--relay-url", relay_url_2, "receive")
self.assertEqual(cfg.relay_url, relay_url_2)
def test_transit_env_var(self):
transit_url = str(mock.sentinel.transit_url)
with mock.patch.dict(os.environ, WORMHOLE_TRANSIT_HELPER=transit_url):
cfg = config("receive")
self.assertEqual(cfg.transit_helper, transit_url)
# Make sure cmd line option overrides environment variable
transit_url_2 = str(mock.sentinel.transit_url_2)
with mock.patch.dict(os.environ, WORMHOLE_TRANSIT_HELPER=transit_url):
cfg = config("--transit-helper", transit_url_2, "receive")
self.assertEqual(cfg.transit_helper, transit_url_2)
class Config(unittest.TestCase):
def test_send(self):
cfg = config("send")

0 comments on commit b362adf

Please sign in to comment.