def test_parse_options_parseOptions_verbosity_verbose(self):
     """If we use `-v` once on the commandline, ``opts['verbosity']``
     should equal ``50``.
     """
     fakeSysArgv = ['bridgedb', '-v', '-v', 'mock', '-n', '-1']
     sys.argv = fakeSysArgv
     opts = options.parseOptions()
     self.assertEqual(opts['verbosity'], 50)
 def test_parse_options_parseOptions_verbosity_quiet_quiet(self):
     """If we use `-q` twice on the commandline, ``opts['verbosity']``
     should equal ``10``.
     """
     fakeSysArgv = ['bridgedb', '-q', '-q', 'mock', '-n', '-1']
     sys.argv = fakeSysArgv
     opts = options.parseOptions()
     self.assertEqual(opts['verbosity'], 10)
 def test_parse_options_parseOptions_with_valid_options(self):
     """:func:`options.parseOptions` should return a
     :class:`options.MainOptions` when given valid commandline arguments.
     """
     fakeSysArgv = ['bridgedb', 'mock', '-n', '-1']
     sys.argv = fakeSysArgv
     opts = options.parseOptions()
     self.assertIsInstance(opts, options.MainOptions)
Example #4
0
    def test_Main_run(self):
        """Main.run() should run and then finally raise SystemExit."""
        config = """
BRIDGE_FILES = ["../run/bridge-descriptors"]
EXTRA_INFO_FILES = ["../run/cached-extrainfo", "../run/cached-extrainfo.new"]
STATUS_FILE = "../run/networkstatus-bridges"
HTTPS_CERT_FILE="cert"
HTTPS_KEY_FILE="privkey.pem"
LOGFILE = "bridgedb.log"
PIDFILE = "bridgedb.pid"
DB_FILE = "bridgedist.db"
DB_LOG_FILE = "bridgedist.log"
MASTER_KEY_FILE = "secret_key"
ASSIGNMENTS_FILE = "assignments.log"
LOGLEVEL = "DEBUG"
SAFELOGGING = True
LOGFILE_COUNT = 5
LOGFILE_ROTATE_SIZE = 10000000
LOG_THREADS = False
LOG_TRACE = True
LOG_TIME_FORMAT = "%H:%M:%S"
COLLECT_TIMESTAMPS = False
NO_DISTRIBUTION_COUNTRIES = ['IR', 'SY']
PROXY_LIST_FILES = []
N_IP_CLUSTERS = 3
FORCE_PORTS = [(443, 1)]
FORCE_FLAGS = [("Stable", 1)]
BRIDGE_PURPOSE = "bridge"
TASKS = {'GET_TOR_EXIT_LIST': 3 * 60 * 60,}
SERVER_PUBLIC_FQDN = 'bridges.torproject.org'
SERVER_PUBLIC_EXTERNAL_IP = '38.229.72.19'
HTTPS_DIST = True
HTTPS_BIND_IP = None
HTTPS_PORT = None
HTTPS_N_BRIDGES_PER_ANSWER = 3
HTTPS_INCLUDE_FINGERPRINTS = True
HTTPS_USE_IP_FROM_FORWARDED_HEADER = False
HTTP_UNENCRYPTED_BIND_IP = "127.0.0.1"
HTTP_UNENCRYPTED_PORT = 55555
HTTP_USE_IP_FROM_FORWARDED_HEADER = False
RECAPTCHA_ENABLED = False
RECAPTCHA_PUB_KEY = ''
RECAPTCHA_SEC_KEY = ''
RECAPTCHA_REMOTEIP = ''
GIMP_CAPTCHA_ENABLED = False
GIMP_CAPTCHA_DIR = 'captchas'
GIMP_CAPTCHA_HMAC_KEYFILE = 'captcha_hmac_key'
GIMP_CAPTCHA_RSA_KEYFILE = 'captcha_rsa_key'
EMAIL_DIST = True
EMAIL_FROM_ADDR = "*****@*****.**"
EMAIL_SMTP_FROM_ADDR = "*****@*****.**"
EMAIL_SMTP_HOST = "127.0.0.1"
EMAIL_SMTP_PORT = 55556
EMAIL_USERNAME = "******"
EMAIL_DOMAINS = ["somewhere.com", "somewhereelse.net"]
EMAIL_DOMAIN_MAP = {
    "mail.somewhere.com": "somewhere.com",
    "mail.somewhereelse.net": "somewhereelse.net",
}
EMAIL_DOMAIN_RULES = {
    'somewhere.com': ["ignore_dots", "dkim"],
    'somewhereelse.net': ["dkim"],
}
EMAIL_WHITELIST = {}
EMAIL_BLACKLIST = []
EMAIL_FUZZY_MATCH = 4
EMAIL_RESTRICT_IPS = []
EMAIL_BIND_IP = "127.0.0.1"
EMAIL_PORT = 55557
EMAIL_N_BRIDGES_PER_ANSWER = 3
EMAIL_INCLUDE_FINGERPRINTS = True
EMAIL_GPG_SIGNING_ENABLED = False
EMAIL_GPG_HOMEDIR = '../.gnupg'
EMAIL_GPG_PRIMARY_KEY_FINGERPRINT = '0017098C5DF4197E3C884DCFF1B240D43F148C21'
EMAiL_GPG_PASSPHRASE = None
EMAIL_GPG_PASSPHRASE_FILE = None
HTTPS_SHARE = 10
EMAIL_SHARE = 5
RESERVED_SHARE = 2
FILE_BUCKETS = {}"""
        configFile = self._writeConfig(config)

        # Fake some options:
        sys.argv = ['bridgedb', '-r', os.getcwd(), '-c', configFile]
        options = parseOptions()

        self.assertRaises(SystemExit, Main.run, options, reactor=None)
Example #5
0
    def test_main_run(self):
        """main.run() should run and then finally raise SystemExit."""
        config = """
BRIDGE_FILES = ["../run/bridge-descriptors"]
EXTRA_INFO_FILES = ["../run/cached-extrainfo", "../run/cached-extrainfo.new"]
STATUS_FILE = "../run/networkstatus-bridges"
HTTPS_CERT_FILE="cert"
HTTPS_KEY_FILE="privkey.pem"
LOGFILE = "bridgedb.log"
PIDFILE = "bridgedb.pid"
DB_FILE = "bridgedist.db"
DB_LOG_FILE = "bridgedist.log"
MASTER_KEY_FILE = "secret_key"
ASSIGNMENTS_FILE = "assignments.log"
LOGLEVEL = "DEBUG"
SAFELOGGING = True
LOGFILE_COUNT = 5
LOGFILE_ROTATE_SIZE = 10000000
LOG_THREADS = False
LOG_TRACE = True
LOG_TIME_FORMAT = "%H:%M:%S"
COLLECT_TIMESTAMPS = False
NO_DISTRIBUTION_COUNTRIES = ['IR', 'SY']
PROXY_LIST_FILES = []
N_IP_CLUSTERS = 3
FORCE_PORTS = [(443, 1)]
FORCE_FLAGS = [("Stable", 1)]
BRIDGE_PURPOSE = "bridge"
TASKS = {'GET_TOR_EXIT_LIST': 3 * 60 * 60,}
SERVER_PUBLIC_FQDN = 'bridges.torproject.org'
SERVER_PUBLIC_EXTERNAL_IP = '38.229.72.19'
HTTPS_DIST = True
HTTPS_BIND_IP = None
HTTPS_PORT = None
HTTPS_N_BRIDGES_PER_ANSWER = 3
HTTPS_INCLUDE_FINGERPRINTS = True
HTTPS_USE_IP_FROM_FORWARDED_HEADER = False
HTTP_UNENCRYPTED_BIND_IP = "127.0.0.1"
HTTP_UNENCRYPTED_PORT = 55555
HTTP_USE_IP_FROM_FORWARDED_HEADER = False
RECAPTCHA_ENABLED = False
RECAPTCHA_PUB_KEY = ''
RECAPTCHA_SEC_KEY = ''
RECAPTCHA_REMOTEIP = ''
GIMP_CAPTCHA_ENABLED = False
GIMP_CAPTCHA_DIR = 'captchas'
GIMP_CAPTCHA_HMAC_KEYFILE = 'captcha_hmac_key'
GIMP_CAPTCHA_RSA_KEYFILE = 'captcha_rsa_key'
EMAIL_DIST = True
EMAIL_FROM_ADDR = "*****@*****.**"
EMAIL_SMTP_FROM_ADDR = "*****@*****.**"
EMAIL_SMTP_HOST = "127.0.0.1"
EMAIL_SMTP_PORT = 55556
EMAIL_USERNAME = "******"
EMAIL_DOMAINS = ["somewhere.com", "somewhereelse.net"]
EMAIL_DOMAIN_MAP = {
    "mail.somewhere.com": "somewhere.com",
    "mail.somewhereelse.net": "somewhereelse.net",
}
EMAIL_DOMAIN_RULES = {
    'somewhere.com': ["ignore_dots", "dkim"],
    'somewhereelse.net': ["dkim"],
}
EMAIL_WHITELIST = {}
EMAIL_BLACKLIST = []
EMAIL_FUZZY_MATCH = 4
EMAIL_RESTRICT_IPS = []
EMAIL_BIND_IP = "127.0.0.1"
EMAIL_PORT = 55557
EMAIL_N_BRIDGES_PER_ANSWER = 3
EMAIL_INCLUDE_FINGERPRINTS = True
EMAIL_GPG_SIGNING_ENABLED = False
EMAIL_GPG_HOMEDIR = '../.gnupg'
EMAIL_GPG_PRIMARY_KEY_FINGERPRINT = '0017098C5DF4197E3C884DCFF1B240D43F148C21'
EMAiL_GPG_PASSPHRASE = None
EMAIL_GPG_PASSPHRASE_FILE = None
HTTPS_SHARE = 10
EMAIL_SHARE = 5
RESERVED_SHARE = 2"""
        configFile = self._writeConfig(config)
        
        # Fake some options:
        sys.argv = ['bridgedb', '-r', os.getcwd(), '-c', configFile]
        options = parseOptions()

        self.assertRaises(SystemExit, main.run, options, reactor=None)
 def test_parse_options_parseOptions_rundir(self):
     """The automatic rundir should be our current directory."""
     fakeSysArgv = ['bridgedb', 'mock', '-n', '-1']
     sys.argv = fakeSysArgv
     opts = options.parseOptions()
     self.assertEqual(opts['rundir'], os.getcwd())