Skip to content

Commit aeef22e

Browse files
author
B1nj0y
committed
refactoring kernel_language variable; add some unit tests to the added argument of format_request
1 parent 4de6eff commit aeef22e

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

kernel_gateway/notebook_http/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ def __init__(self, *args, **kwargs):
7070
self.api_parser = func(parent=self, log=self.log,
7171
comment_prefix=prefix,
7272
notebook_cells=self.parent.seed_notebook.cells)
73+
self.kernel_language = lang
7374

7475
def init_configurables(self):
7576
"""Create a managed kernel pool"""
@@ -123,7 +124,7 @@ def create_request_handlers(self):
123124
'response_sources' : response_source_map,
124125
'kernel_pool' : self.kernel_pool,
125126
'kernel_name' : self.parent.kernel_manager.seed_kernelspec,
126-
'kernel_language' : getattr(self.parent.kernel_spec_manager.get_kernel_spec(self.parent.kernel_manager.seed_kernelspec), 'language', 'no_spec')
127+
'kernel_language' : self.kernel_language or 'no_spec'
127128
}
128129
handlers.append((parameterized_path, NotebookAPIHandler, handler_args))
129130

kernel_gateway/notebook_http/handlers.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@ class NotebookAPIHandler(TokenAuthorizationMixin,
3333
kernel_pool
3434
Instance of services.kernels.ManagedKernelPool
3535
kernel_name
36-
Kernel spec name used to launch the kernel pool. Identifies the
37-
language of the source code cells.
36+
Kernel spec name used to launch the kernel pool
3837
kernel_language
3938
Kernel spec language used to make language specific operations
4039

kernel_gateway/notebook_http/request_utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ def format_request(bundle, kernel_language='no_spec'):
1919
Returns
2020
-------
2121
str
22-
`REQUEST = "<json-encoded expression>"`
22+
`REQUEST = "<json-encoded expression>"` by default or
23+
`<a kernel_language specific variable name> = "<json-encoded expression>"`
2324
"""
2425
bundle = json.dumps(bundle)
2526
if kernel_language.lower() == 'perl':

kernel_gateway/tests/notebook_http/test_request_utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,3 +142,13 @@ def test_format_request_code_escaped(self):
142142
#Get the value of REQUEST = "{ to test for equality
143143
test_request_js_value = request_code[request_code.index("\"{"):]
144144
self.assertEqual(test_request, json.loads(test_request_js_value), "Escaped Request code was not formatted correctly")
145+
146+
def test_format_request_without_a_kernel_language_arg(self):
147+
test_request = ('''{"body": "", "headers": {}, "args": {}, "path": {}}''')
148+
request_code = format_request(test_request)
149+
self.assertTrue(request_code.startswith("REQUEST"), "Call format_request without a kernel_language argument was not formatted correctly")
150+
151+
def test_format_request_with_a_kernel_language_arg(self):
152+
test_request = ('''{"body": "", "headers": {}, "args": {}, "path": {}}''')
153+
request_code = format_request(test_request, 'perl')
154+
self.assertTrue(request_code.startswith("my $REQUEST"), "Call format_request with a kernel language argument was not formatted correctly")

0 commit comments

Comments
 (0)