예제 #1
0
    def test_trust_xheaders(self):

        app = KernelGatewayApp()
        self.assertEqual(app.trust_xheaders, False)
        os.environ['KG_TRUST_XHEADERS'] = 'true'
        app = KernelGatewayApp()
        self.assertEqual(app.trust_xheaders, True)
예제 #2
0
 def test_ssl_options(self):
     app = KernelGatewayApp()
     ssl_options = app._build_ssl_options()
     self.assertIsNone(ssl_options)
     app = KernelGatewayApp()
     os.environ['KG_CERTFILE'] = '/test/fake.crt'
     ssl_options = app._build_ssl_options()
     self.assertEqual(ssl_options['ssl_version'], 5)
 def test_seed_kernel_not_available(self):
     """
     Server should error because seed notebook requires a kernel that is not
     installed.
     """
     app = KernelGatewayApp()
     app.seed_uri = os.path.join(RESOURCES, 'unknown_kernel.ipynb')
     self.assertRaises(NoSuchKernel, app.init_configurables)
 def test_prespawn_max_conflict(self):
     """Server should error if prespawn count is greater than max allowed
     kernels.
     """
     app = KernelGatewayApp()
     app.prespawn_count = 3
     app.max_kernels = 2
     self.assertRaises(RuntimeError, app.init_configurables)
예제 #5
0
 def get_app(self):
     """Returns a tornado.web.Application for the Tornado test runner."""
     if hasattr(self, '_app'):
         return self._app
     self.app = KernelGatewayApp(log_level=logging.CRITICAL)
     self.setup_app()
     self.app.init_configurables()
     self.app.init_webapp()
     return self.app.web_app
예제 #6
0
    def test_load_notebook_local(self):
        nb_path = os.path.join(RESOURCES, 'weirdly%20named#notebook.ipynb')
        os.environ['KG_SEED_URI'] = nb_path
        with open(nb_path) as nb_fh:
            nb_contents = nbformat.read(nb_fh, 4)

        app = KernelGatewayApp()
        app.init_configurables()
        self.assertEqual(app.seed_notebook, nb_contents)
 def test_seed_kernel_failing(self):
     """
     Server should error because seed notebook requires a kernel that is not
     installed.
     """
     app = KernelGatewayApp()
     app.prespawn_count = 1
     app.seed_uri = os.path.join(RESOURCES, 'failing_code.ipynb')
     self.assertRaises(RuntimeError, app.init_configurables)
예제 #8
0
 def get_app(self):
     '''Returns a tornado.web.Application for system tests.'''
     if hasattr(self, '_app'):
         return self._app
     self.app = KernelGatewayApp(log_level=logging.CRITICAL)
     self.setup_app()
     self.app.init_configurables()
     self.app.init_webapp()
     return self.app.web_app
예제 #9
0
    def test_config_env_vars(self):
        """Env vars should be honored for traitlets."""
        # Environment vars are always strings
        os.environ['KG_PORT'] = '1234'
        os.environ['KG_PORT_RETRIES'] = '4321'
        os.environ['KG_IP'] = '1.1.1.1'
        os.environ['KG_AUTH_TOKEN'] = 'fake-token'
        os.environ['KG_ALLOW_CREDENTIALS'] = 'true'
        os.environ['KG_ALLOW_HEADERS'] = 'Authorization'
        os.environ['KG_ALLOW_METHODS'] = 'GET'
        os.environ['KG_ALLOW_ORIGIN'] = '*'
        os.environ['KG_EXPOSE_HEADERS'] = 'X-Fake-Header'
        os.environ['KG_MAX_AGE'] = '5'
        os.environ['KG_BASE_URL'] = '/fake/path'
        os.environ['KG_MAX_KERNELS'] = '1'
        os.environ['KG_SEED_URI'] = 'fake-notebook.ipynb'
        os.environ['KG_PRESPAWN_COUNT'] = '1'
        os.environ['KG_FORCE_KERNEL_NAME'] = 'fake_kernel_forced'
        os.environ['KG_DEFAULT_KERNEL_NAME'] = 'fake_kernel'
        os.environ['KG_KEYFILE'] = '/test/fake.key'
        os.environ['KG_CERTFILE'] = '/test/fake.crt'
        os.environ['KG_CLIENT_CA'] = '/test/fake_ca.crt'
        os.environ['KG_SSL_VERSION'] = '3'
        os.environ['KG_TRUST_XHEADERS'] = 'false'

        app = KernelGatewayApp()

        self.assertEqual(app.port, 1234)
        self.assertEqual(app.port_retries, 4321)
        self.assertEqual(app.ip, '1.1.1.1')
        self.assertEqual(app.auth_token, 'fake-token')
        self.assertEqual(app.allow_credentials, 'true')
        self.assertEqual(app.allow_headers, 'Authorization')
        self.assertEqual(app.allow_methods, 'GET')
        self.assertEqual(app.allow_origin, '*')
        self.assertEqual(app.expose_headers, 'X-Fake-Header')
        self.assertEqual(app.max_age, '5')
        self.assertEqual(app.base_url, '/fake/path')
        self.assertEqual(app.max_kernels, 1)
        self.assertEqual(app.seed_uri, 'fake-notebook.ipynb')
        self.assertEqual(app.prespawn_count, 1)
        self.assertEqual(app.default_kernel_name, 'fake_kernel')
        self.assertEqual(app.force_kernel_name, 'fake_kernel_forced')
        self.assertEqual(app.keyfile, '/test/fake.key')
        self.assertEqual(app.certfile, '/test/fake.crt')
        self.assertEqual(app.client_ca, '/test/fake_ca.crt')
        self.assertEqual(app.ssl_version, 3)
        self.assertEqual(app.trust_xheaders, False)
예제 #10
0
    def test_config_env_vars(self):
        """Env vars should be honored for traitlets."""
        # Environment vars are always strings
        os.environ['KG_PORT'] = '1234'
        os.environ['KG_PORT_RETRIES'] = '4321'
        os.environ['KG_IP'] = '1.1.1.1'
        os.environ['KG_AUTH_TOKEN'] = 'fake-token'
        os.environ['KG_ALLOW_CREDENTIALS'] = 'true'
        os.environ['KG_ALLOW_HEADERS'] = 'Authorization'
        os.environ['KG_ALLOW_METHODS'] = 'GET'
        os.environ['KG_ALLOW_ORIGIN'] = '*'
        os.environ['KG_EXPOSE_HEADERS'] = 'X-Fake-Header'
        os.environ['KG_MAX_AGE'] = '5'
        os.environ['KG_BASE_URL'] = '/fake/path'
        os.environ['KG_MAX_KERNELS'] = '1'
        os.environ['KG_SEED_URI'] = 'fake-notebook.ipynb'
        os.environ['KG_PRESPAWN_COUNT'] = '1'
        os.environ['KG_DEFAULT_KERNEL_NAME'] = 'fake_kernel'
        os.environ['KG_LIST_KERNELS'] = 'True'
        os.environ['KG_ALLOW_NOTEBOOK_DOWNLOAD'] = 'True'

        app = KernelGatewayApp()

        self.assertEqual(app.port, 1234)
        self.assertEqual(app.port_retries, 4321)
        self.assertEqual(app.ip, '1.1.1.1')
        self.assertEqual(app.auth_token, 'fake-token')
        self.assertEqual(app.allow_credentials, 'true')
        self.assertEqual(app.allow_headers, 'Authorization')
        self.assertEqual(app.allow_methods, 'GET')
        self.assertEqual(app.allow_origin, '*')
        self.assertEqual(app.expose_headers, 'X-Fake-Header')
        self.assertEqual(app.max_age, '5')
        self.assertEqual(app.base_url, '/fake/path')
        self.assertEqual(app.max_kernels, 1)
        self.assertEqual(app.seed_uri, 'fake-notebook.ipynb')
        self.assertEqual(app.prespawn_count, 1)
        self.assertEqual(app.default_kernel_name, 'fake_kernel')
        self.assertEqual(app.list_kernels, True)
        self.assertEqual(app.allow_notebook_download, True)