You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@toree.apache.org by ch...@apache.org on 2016/06/07 14:40:09 UTC
incubator-toree git commit: Add jar kernel test and override
execute_helper
Repository: incubator-toree
Updated Branches:
refs/heads/master 30dffb8b8 -> 05b698c1b
Add jar kernel test and override execute_helper
Project: http://git-wip-us.apache.org/repos/asf/incubator-toree/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-toree/commit/05b698c1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-toree/tree/05b698c1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-toree/diff/05b698c1
Branch: refs/heads/master
Commit: 05b698c1bdbe2a117b8903e0301574bb97fa6e5c
Parents: 30dffb8
Author: Michael Poplavski <mi...@gmail.com>
Authored: Thu May 26 15:09:10 2016 -0500
Committer: Michael Poplavski <mi...@gmail.com>
Committed: Tue Jun 7 09:05:18 2016 -0500
----------------------------------------------------------------------
Makefile | 5 +++--
test_toree.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 56 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-toree/blob/05b698c1/Makefile
----------------------------------------------------------------------
diff --git a/Makefile b/Makefile
index 2da903f..884d4ec 100644
--- a/Makefile
+++ b/Makefile
@@ -182,9 +182,10 @@ system-test: pip-release
--name jupyter_kernel_tests \
-v `pwd`/dist/toree-pip:/srv/toree-pip \
-v `pwd`/test_toree.py:/srv/test_toree.py \
+ -v `pwd`/scala-interpreter/src/test/resources:/srv/system-test-resources \
$(IMAGE) \
- bash -c "pip install /srv/toree-pip/toree*.tar.gz ; jupyter toree install --user --kernel_name='Apache_Toree' ; \
- pip install nose jupyter_kernel_test ; python /srv/test_toree.py"
+ bash -c "(cd /srv/system-test-resources && python -m http.server 8000 &) && pip install /srv/toree-pip/toree*.tar.gz && jupyter toree install --user --kernel_name='Apache_Toree' && \
+ pip install nose jupyter_kernel_test && python /srv/test_toree.py"
################################################################################
# Jars
http://git-wip-us.apache.org/repos/asf/incubator-toree/blob/05b698c1/test_toree.py
----------------------------------------------------------------------
diff --git a/test_toree.py b/test_toree.py
index b8f1bfc..da25b2b 100644
--- a/test_toree.py
+++ b/test_toree.py
@@ -36,14 +36,64 @@ class ToreeKernelTests(jupyter_kernel_test.KernelTests):
# Code in the kernel's language to write "hello, world" to stdout
code_hello_world = "println(\"hello, world\")"
- # Samples of code which generate a result value (ie, some text
- # displayed as Out[n])
- code_execute_result = [
+ test_statements_execute_result = [
{'code': '6*7', 'result': '42'},
{'code': 'sc.parallelize(List(1, 2, 3, 4)).map(_*2).reduce(_+_)', 'result': '20'},
{'code': '%showtypes on\n1', 'result': 'Int = 1'},
{'code': '%showtypes off\n1', 'result': '1'}
]
+ test_statements_stdout = [
+ {'code': '%AddJar http://0.0.0.0:8000/TestJar.jar\nimport com.ibm.testjar.TestClass\nprintln(new TestClass().sayHello("Person"))', 'result': 'Hello, Person\n'}
+ ]
+
+ def test_scala_stdout(self):
+ '''Asserts test_statements execute correctly meaning the last message is the expected result'''
+ for sample in self.test_statements_stdout:
+ with self.subTest(code=sample['code']):
+ self.flush_channels()
+ reply, output_msgs = self.execute_helper(sample['code'])
+
+ self.assertEqual(reply['content']['status'], 'ok')
+
+ self.assertGreaterEqual(len(output_msgs), 1)
+ self.assertEqual(output_msgs[-1]['msg_type'], 'stream')
+ self.assertEqual(output_msgs[-1]['content']['name'], 'stdout')
+ self.assertIn(sample['result'], output_msgs[-1]['content']['text'])
+
+ def test_scala_execute_result(self):
+ '''Asserts test_statements execute correctly meaning the last message is the expected result'''
+ for sample in self.test_statements_execute_result:
+ with self.subTest(code=sample['code']):
+ self.flush_channels()
+
+ reply, output_msgs = self.execute_helper(sample['code'])
+ self.assertEqual(reply['content']['status'], 'ok')
+ #Use last message as code may be multiple lines/stream
+ self.assertIn('text/plain', output_msgs[-1]['content']['data'])
+ self.assertEqual(output_msgs[-1]['content']['data']['text/plain'], sample['result'])
+
+ def execute_helper(self, code, timeout=15,
+ silent=False, store_history=True):
+ '''Overrides the jupyter kernel test execute_helper'''
+ self.kc.execute(code=code, silent=silent, store_history=store_history)
+
+ reply = self.kc.get_shell_msg(timeout=timeout)
+
+ output_msgs = []
+ while True:
+ msg = self.kc.iopub_channel.get_msg(timeout=0.1)
+ if msg['msg_type'] == 'status':
+ if msg['content']['execution_state'] == 'busy':
+ continue
+ elif msg['content']['execution_state'] == 'idle':
+ break
+ elif msg['msg_type'] == 'execute_input':
+ self.assertEqual(msg['content']['code'], code)
+ continue
+ output_msgs.append(msg)
+
+ return reply, output_msgs
+
if __name__ == '__main__':
unittest.main()
\ No newline at end of file