def test_no_state_ini_file_or_state_dir(self, mock_os, mock_file_exists, mock_path_exists, mock_psws, mock_shutil, mock_management_util, mock_tabpy_state): get_config() self.assertEqual(len(mock_shutil.mock_calls), 1) self.assertEqual(len(mock_os.makedirs.mock_calls), 1)
def test_no_config_file(self, mock_os, mock_file_exists, mock_path_exists, mock_psws, mock_shutil, mock_management_util, mock_tabpy_state): get_config(None) getenv_calls = [call('TABPY_PORT', 9004), call('TABPY_QUERY_OBJECT_PATH', '/tmp/query_objects'), call('TABPY_STATE_PATH', './')] mock_os.getenv.assert_has_calls(getenv_calls, any_order=True) mock_shutil.assert_not_called() self.assertEqual(len(mock_file_exists.mock_calls), 1) self.assertEqual(len(mock_psws.mock_calls), 1) self.assertEqual(len(mock_tabpy_state.mock_calls), 1) self.assertEqual(len(mock_path_exists.mock_calls), 1) self.assertTrue(len(mock_management_util.mock_calls) > 0) mock_os.makedirs.assert_not_called()
def test_config_file_present(self, mock_os, mock_path_exists, mock_psws, mock_shutil, mock_management_util, mock_tabpy_state, mock_parse_arguments): config_file = NamedTemporaryFile(delete=False) append_logger_settings_to_config_file(config_file) config_file.write("[TabPy]\n" "TABPY_BIND_IP = 0.0.0.0\n" "TABPY_QUERY_OBJECT_PATH = foo\n" "TABPY_STATE_PATH = bar\n".encode()) config_file.close() mock_parse_arguments.return_value = Namespace( config=config_file.name, port=None) mock_os.getenv.side_effect = [1234] mock_os.path.realpath.return_value = 'bar' settings, _ = get_config(config_file.name) getenv_calls = [call('TABPY_PORT', 9004)] mock_os.getenv.assert_has_calls(getenv_calls, any_order=True) self.assertEqual(settings['port'], 1234) self.assertEqual(settings['server_version'], open('VERSION').read().strip()) self.assertEquals(settings['bind_ip'], '0.0.0.0') self.assertEquals(settings['upload_dir'], 'foo') self.assertEquals(settings['state_file_path'], 'bar') self.assertEqual(settings['transfer_protocol'], 'http') self.assertTrue('certificate_file' not in settings) self.assertTrue('key_file' not in settings) os.remove(config_file.name)
def test_http(self): self.fp.write("[TabPy]\n" "TABPY_TRANSFER_PROTOCOL = http".encode()) self.fp.close() settings, _ = get_config(self.fp.name) self.assertEqual(settings['transfer_protocol'], 'http')
def test_config_file_present(self, mock_os, mock_path_exists, mock_psws, mock_shutil, mock_management_util, mock_tabpy_state, mock_parse_arguments): config_file = NamedTemporaryFile(delete=False) config_file.write(b'TABPY_BIND_IP = 0.0.0.0\n' b'TABPY_QUERY_OBJECT_PATH = foo\n' b'TABPY_STATE_PATH = bar\n' b'TABPY_LOG_LEVEL = warning') config_file.close() mock_parse_arguments.return_value = Namespace(config=config_file.name, port=None) mock_os.getenv.side_effect = [1234] mock_os.path.realpath.return_value = 'bar' settings, _ = get_config() getenv_calls = [call('TABPY_PORT', 9004)] mock_os.getenv.assert_has_calls(getenv_calls, any_order=True) self.assertEqual(settings['log_level'], 'WARNING') self.assertEqual(settings['port'], 1234) self.assertEquals(settings['server_version'], tabpy_server.__version__) self.assertEquals(settings['bind_ip'], '0.0.0.0') self.assertEquals(settings['upload_dir'], 'foo') self.assertEquals(settings['state_file_path'], 'bar') self.assertEqual(settings['transfer_protocol'], 'http') self.assertTrue('certificate_file' not in settings) self.assertTrue('key_file' not in settings) os.remove(config_file.name)
def test_https_success(self, mock_validate_cert, mock_isfile): self.fp.write(b'TABPY_TRANSFER_PROTOCOL = HtTpS\n' b'TABPY_CERTIFICATE_FILE = foo\n' b'TABPY_KEY_FILE = bar') self.fp.close() settings, _ = get_config() self.assertEqual(settings['transfer_protocol'], 'https') self.assertEqual(settings['certificate_file'], 'foo') self.assertEqual(settings['key_file'], 'bar')
def test_config_file_present(self, mock_os, mock_path_exists, mock_psws, mock_shutil, mock_management_util, mock_tabpy_state): settings, _ = get_config() getenv_calls = [ call('TABPY_PORT', 9004), call('TABPY_SERVER_VERSION', 'Alpha') ] mock_os.getenv.assert_has_calls(getenv_calls, any_order=True) self.assertEqual(settings['upload_dir'], '/tmp/query_objects')
def test_invalid_log_level(self, mock_parse_arguments): fp = NamedTemporaryFile(delete=False) fp.write(b'TABPY_LOG_LEVEL = foo') fp.close() mock_parse_arguments.return_value = Namespace(config=fp.name, port=None) settings, _ = get_config() self.assertEqual(settings['log_level'], 'INFO') os.remove(fp.name)
def test_valid_log_level(self): valid_levels = {'inFO', 'WARNING', 'error', 'CriTiCal'} for level in valid_levels: fp = NamedTemporaryFile(delete=False) fp.write(b'TABPY_LOG_LEVEL = ' + bytes(level, 'utf-8')) fp.close() patcher = patch('tabpy_server.tabpy.parse_arguments', return_value=Namespace(config=fp.name, port=None)) patcher.start() settings, _ = get_config() self.assertEqual(settings['log_level'], level.upper()) os.remove(fp.name)
def test_default_log_level(self, mock_isfile): settings, _ = get_config() self.assertEqual(settings['log_level'], 'INFO')
def test_http(self): self.fp.write(b'TABPY_TRANSFER_PROTOCOL = http') self.fp.close() settings, _ = get_config() self.assertEqual(settings['transfer_protocol'], 'http')