Пример #1
0
    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)
Пример #2
0
    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()
Пример #3
0
    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)
Пример #4
0
    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')
Пример #5
0
    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)
Пример #6
0
    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')
Пример #7
0
    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')
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
 def test_default_log_level(self, mock_isfile):
     settings, _ = get_config()
     self.assertEqual(settings['log_level'], 'INFO')
Пример #11
0
    def test_http(self):
        self.fp.write(b'TABPY_TRANSFER_PROTOCOL = http')
        self.fp.close()

        settings, _ = get_config()
        self.assertEqual(settings['transfer_protocol'], 'http')