magic-wormhole/src/wormhole/test/test_args.py

203 lines
7.1 KiB
Python
Raw Normal View History

import os
import sys
2018-04-21 07:30:08 +00:00
from twisted.trial import unittest
2018-04-21 07:30:08 +00:00
import mock
from ..cli.public_relay import RENDEZVOUS_RELAY, TRANSIT_RELAY
from .common import config
2018-04-21 07:30:08 +00:00
class Send(unittest.TestCase):
def test_baseline(self):
cfg = config("send", "--text", "hi")
self.assertEqual(cfg.what, None)
self.assertEqual(cfg.code, None)
self.assertEqual(cfg.code_length, 2)
self.assertEqual(cfg.dump_timing, None)
self.assertEqual(cfg.hide_progress, False)
self.assertEqual(cfg.listen, True)
self.assertEqual(cfg.appid, None)
self.assertEqual(cfg.relay_url, RENDEZVOUS_RELAY)
self.assertEqual(cfg.transit_helper, TRANSIT_RELAY)
self.assertEqual(cfg.text, "hi")
self.assertEqual(cfg.tor, False)
self.assertEqual(cfg.verify, False)
self.assertEqual(cfg.zeromode, False)
def test_appid(self):
cfg = config("--appid", "xyz", "send", "--text", "hi")
self.assertEqual(cfg.appid, "xyz")
cfg = config("--appid=xyz", "send", "--text", "hi")
self.assertEqual(cfg.appid, "xyz")
def test_file(self):
cfg = config("send", "fn")
self.assertEqual(cfg.what, u"fn")
self.assertEqual(cfg.text, None)
def test_text(self):
cfg = config("send", "--text", "hi")
self.assertEqual(cfg.what, None)
self.assertEqual(cfg.text, u"hi")
def test_nolisten(self):
cfg = config("send", "--no-listen", "fn")
self.assertEqual(cfg.listen, False)
def test_code(self):
cfg = config("send", "--code", "1-abc", "fn")
self.assertEqual(cfg.code, u"1-abc")
def test_code_length(self):
cfg = config("send", "-c", "3", "fn")
self.assertEqual(cfg.code_length, 3)
def test_dump_timing(self):
cfg = config("--dump-timing", "tx.json", "send", "fn")
self.assertEqual(cfg.dump_timing, "tx.json")
def test_hide_progress(self):
cfg = config("send", "--hide-progress", "fn")
self.assertEqual(cfg.hide_progress, True)
def test_tor(self):
cfg = config("send", "--tor", "fn")
self.assertEqual(cfg.tor, True)
def test_verify(self):
cfg = config("send", "--verify", "fn")
self.assertEqual(cfg.verify, True)
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")
self.assertEqual(cfg.accept_file, False)
self.assertEqual(cfg.code, None)
self.assertEqual(cfg.code_length, 2)
self.assertEqual(cfg.dump_timing, None)
self.assertEqual(cfg.hide_progress, False)
self.assertEqual(cfg.listen, True)
self.assertEqual(cfg.only_text, False)
self.assertEqual(cfg.output_file, None)
self.assertEqual(cfg.appid, None)
self.assertEqual(cfg.relay_url, RENDEZVOUS_RELAY)
self.assertEqual(cfg.transit_helper, TRANSIT_RELAY)
self.assertEqual(cfg.tor, False)
self.assertEqual(cfg.verify, False)
self.assertEqual(cfg.zeromode, False)
def test_appid(self):
cfg = config("--appid", "xyz", "receive")
self.assertEqual(cfg.appid, "xyz")
cfg = config("--appid=xyz", "receive")
self.assertEqual(cfg.appid, "xyz")
def test_nolisten(self):
cfg = config("receive", "--no-listen")
self.assertEqual(cfg.listen, False)
def test_code(self):
cfg = config("receive", "1-abc")
self.assertEqual(cfg.code, u"1-abc")
def test_code_length(self):
cfg = config("receive", "-c", "3")
self.assertEqual(cfg.code_length, 3)
def test_dump_timing(self):
cfg = config("--dump-timing", "tx.json", "receive")
self.assertEqual(cfg.dump_timing, "tx.json")
def test_hide_progress(self):
cfg = config("receive", "--hide-progress")
self.assertEqual(cfg.hide_progress, True)
def test_tor(self):
cfg = config("receive", "--tor")
self.assertEqual(cfg.tor, True)
def test_verify(self):
cfg = config("receive", "--verify")
self.assertEqual(cfg.verify, True)
def test_zeromode(self):
cfg = config("receive", "-0")
self.assertEqual(cfg.zeromode, True)
def test_only_text(self):
cfg = config("receive", "-t")
self.assertEqual(cfg.only_text, True)
def test_accept_file(self):
cfg = config("receive", "--accept-file")
self.assertEqual(cfg.accept_file, True)
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)
2018-04-21 07:30:08 +00:00
class Config(unittest.TestCase):
def test_send(self):
cfg = config("send")
self.assertEqual(cfg.stdout, sys.stdout)
2018-04-21 07:30:08 +00:00
def test_receive(self):
cfg = config("receive")
self.assertEqual(cfg.stdout, sys.stdout)