def test_23a_utility_debug_missing(self): """ Ensure that config with missing utility_debug is always false. """ self.mangle(change={"utility_debug": None}) ConfigurationInit(TESTCONF, "sample.json") self.assertFalse(globals.g_utility_debug)
def test_03i_new_mode_primary_minion(self): """ Ensure we detect a configuration file without a 'mode' definition (defaults to "primary") """ self.mangle(change={"mode": "primary+minion"}) ConfigurationInit(TESTCONF) self.assertEqual("primary+minion", globals.g_mode)
def test_23b_utility_debug_empty(self): """ Ensure that config with empty utility_debug is always false. """ self.mangle(change={"utility_debug": ""}) ConfigurationInit(TESTCONF, "sample.json") self.assertFalse(globals.g_utility_debug)
def test_05d_cb_server_url_empty_for_minion(self): """ Ensure that 'cb_server_url' is required and detected if mode=minion. """ self.mangle(change={"mode": "minion", "cb_server_url": ""}) with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit(TESTCONF)
def test_03f_deprecated_mode_master_worker(self): """ Ensure we detect a configuration file without a 'mode' definition (defaults to "primary") """ self.mangle(change={"mode": "master+worker"}) ConfigurationInit(TESTCONF) self.assertEqual("master+worker", globals.g_mode)
def test_03a_mode_missing(self): """ Ensure we detect a configuration file without a 'mode' definition (defaults to "primary") """ self.mangle(change={"mode": None}) ConfigurationInit(TESTCONF) self.assertEqual("primary", globals.g_mode)
def test_01b_config_is_dir(self): """ Ensure a config path leading to a directory is detected. """ with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit(os.path.join(TESTS)) assert "is a directory!" in "{0}".format(err.exception.args[0])
def test_16c_num_days_binaries_bogus(self): """ Ensure that config with bogus (non-int) num_days_binaries is detected. """ self.mangle(change={"num_days_binaries": "BOGUS"}) with self.assertRaises(ValueError) as err: ConfigurationInit(TESTCONF, "sample.json") assert "invalid literal for int" in "{0}".format(err.exception.args[0])
def test_07c_yara_rules_dir_not_exists(self): """ Ensure that config with yara rules directory that does not exist is detected. """ self.mangle(change={"yara_rules_dir": "no-such-dir"}) with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit(TESTCONF, "sample.json") assert "does not exist" in "{0}".format(err.exception.args[0])
def test_05b_cb_server_url_empty_for_primary(self): """ Ensure that 'cb_server_url' is not required if mode==primary """ self.mangle(change={"mode": "primary", "cb_server_url": ""}) with self.assertRaises(CbInvalidConfig): ConfigurationInit(TESTCONF) self.assertEqual("", globals.g_cb_server_url)
def test_18d_utility_script_empty(self): """ Ensure that config with empty utility_script with positive interval is nullified. """ self.mangle(change={"utility_script": "", "utility_interval": "10"}) ConfigurationInit(TESTCONF, "sample.json") self.assertEqual(0, globals.g_utility_interval) self.assertEqual("", globals.g_utility_script)
def test_90_minimal_validation_effects(self): """ Ensure that minimal configuration does not set extra globals """ self.mangle(change={"mode": "minion"}) globals.g_postgres_host = None ConfigurationInit(TESTCONF) self.assertEqual(globals.g_postgres_host, "localhost")
def test_25a_celery_worker_config(self): """ Ensure that basic celery worker config is handled """ ConfigurationInit(TESTCONF, "sample.json") self.assertEqual(1, len(globals.g_celery_worker_kwargs)) self.assertTrue("autoscale" in globals.g_celery_worker_kwargs) self.assertEqual("4,4", globals.g_celery_worker_kwargs['autoscale'])
def test_24c_database_scanning_interval_bogus(self): """ Ensure that config with bogus (non-int) database_scanning_interval is detected. """ self.mangle(change={"database_scanning_interval": "BOGUS"}) with self.assertRaises(ValueError) as err: ConfigurationInit(TESTCONF, "sample.json") assert "invalid literal for int" in "{0}".format(err.exception.args[0])
def test_22c_minion_network_timeout_bogus(self): """ Ensure that config with bogus (non-int) minion_network_timeout is detected. """ self.mangle(change={"minion_network_timeout": "BOGUS"}) with self.assertRaises(ValueError) as err: ConfigurationInit(TESTCONF, "sample.json") assert "invalid literal for int" in "{0}".format(err.exception.args[0])
def test_21_config_malformed_parameter(self): """ Ensure that config with malformed parameter is detected """ self.mangle(change={"utility_interval": "1%"}) with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit(TESTCONF, "sample.json") assert "cannot be parsed" in "{0}".format(err.exception.args[0])
def test_20b_feed_database_dir_not_directory(self): """ Ensure that config with feed database directory that is not a directory is detected. """ self.mangle(change={"feed_database_dir": TESTCONF}) with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit(TESTCONF, "sample.json") assert "is not a directory" in "{0}".format(err.exception.args[0])
def test_18b_utility_script_is_dir(self): """ Ensure that config with utility_script as directory is detected. """ self.mangle(change={"utility_script": TESTS, "utility_interval": "10"}) with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit(TESTCONF, "sample.json") assert "is a directory" in "{0}".format(err.exception.args[0])
def test_25b_celery_worker_config_bad_json(self): """ Ensure that basic celery worker config is handled with bad json. """ self.mangle(change={"celery_worker_kwargs": "{BOGUS}"}) with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit(TESTCONF, "sample.json") assert "invalid JSON" in err.exception.args[0]
def test_01a_missing_config(self): """ Ensure a missing config file is detected. """ with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit( os.path.join(TESTS, "config", "no-such-config.conf")) assert "does not exist!" in "{0}".format(err.exception.args[0])
def test_24d_database_scanning_interval_below_minimum(self): """ Ensure that config with missing database_scanning_interval reverts to default """ self.mangle(change={"database_scanning_interval": "18"}) with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit(TESTCONF, "sample.json") assert "'database_scanning_interval' must be greater or equal to 360" in "{0}".format( err.exception.args[0])
def test_24b_database_scanning_interval_empty(self): """ Ensure that config with empty database_scanning_interval reverts to default """ check = globals.g_scanning_interval self.mangle(change={"database_scanning_interval": ""}) ConfigurationInit(TESTCONF, "sample.json") self.assertEqual(check, globals.g_scanning_interval)
def test_23d_utility_debug_empty_global_changed(self): """ Ensure that config with empty utility_debug is always false, even if the globals are altered! """ globals.g_utility_debug = True self.mangle(change={"utility_debug": ""}) ConfigurationInit(TESTCONF, "sample.json") self.assertFalse(globals.g_utility_debug)
def test_23c_utility_debug_bogus(self): """ Ensure that config with bogus (non-bool) utility_debug is detected. """ self.mangle(change={"utility_debug": "BOGUS"}) with self.assertRaises(ValueError) as err: ConfigurationInit(TESTCONF, "sample.json") assert "is not a valid boolean value" in "{0}".format( err.exception.args[0])
def test_17d_utility_interval_negative(self): """ Ensure that config with negative utility_interval is detected. """ self.mangle(change={"utility_interval": "-10"}) with self.assertRaises(CbInvalidConfig) as err: ConfigurationInit(TESTCONF, "sample.json") assert "'utility_interval' must be greater or equal to 0" in "{0}".format( err.exception.args[0])
def test_16b_num_days_binaries_empty(self): """ Ensure that config with empty num_days_binaries reverts to default """ check = globals.g_num_days_binaries self.mangle(change={"num_days_binaries": ""}) ConfigurationInit(TESTCONF, "sample.json") self.assertEqual(check, globals.g_num_days_binaries)
def test_22b_minion_network_timeout_empty(self): """ Ensure that config with empty minion_network_timeout reverts to default """ check = globals.g_minion_network_timeout self.mangle(change={"minion_network_timeout": ""}) ConfigurationInit(TESTCONF, "sample.json") self.assertEqual(check, globals.g_minion_network_timeout)
def test_17a_utility_interval_missing(self): """ Ensure that missing utility_interval uses the default. """ check = globals.g_utility_interval self.mangle(change={"utility_interval": None}) ConfigurationInit(TESTCONF, "sample.json") self.assertEqual(check, globals.g_utility_interval)
def test_15c_disable_rescan_bogus(self): """ Ensure that config with bogus (non-bool) disable_rescan is detected. """ self.mangle(change={"disable_rescan": "BOGUS"}) with self.assertRaises(ValueError) as err: ConfigurationInit(TESTCONF, "sample.json") assert "is not a valid boolean value" in "{0}".format( err.exception.args[0])
def test_17b_utility_interval_empty(self): """ Ensure that empty utility_interval uses the default. """ check = globals.g_utility_interval self.mangle(change={"utility_interval": ""}) ConfigurationInit(TESTCONF, "sample.json") self.assertEqual(check, globals.g_utility_interval)