Added test for is_complete using the kernel tester.
Project: http://git-wip-us.apache.org/repos/asf/incubator-toree/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-toree/commit/e21c2d4f Tree: http://git-wip-us.apache.org/repos/asf/incubator-toree/tree/e21c2d4f Diff: http://git-wip-us.apache.org/repos/asf/incubator-toree/diff/e21c2d4f Branch: refs/heads/master Commit: e21c2d4ffbb466beb1782ceef4fe2c396910fcde Parents: 7782dfa Author: Marius Van Niekerk <mniek...@vm179.corp.maxpointinteractive.com> Authored: Tue Sep 20 19:09:02 2016 -0400 Committer: Marius van Niekerk <marius.v.niek...@gmail.com> Committed: Tue Sep 27 12:52:08 2016 -0400 ---------------------------------------------------------------------- .../scala/ScalaInterpreterSpecific.scala | 22 ++++++++++++-------- test_toree.py | 18 ++++++++++++++++ 2 files changed, 31 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-toree/blob/e21c2d4f/scala-interpreter/src/main/scala-2.11/org/apache/toree/kernel/interpreter/scala/ScalaInterpreterSpecific.scala ---------------------------------------------------------------------- diff --git a/scala-interpreter/src/main/scala-2.11/org/apache/toree/kernel/interpreter/scala/ScalaInterpreterSpecific.scala b/scala-interpreter/src/main/scala-2.11/org/apache/toree/kernel/interpreter/scala/ScalaInterpreterSpecific.scala index 2f34918..dd7adbe 100644 --- a/scala-interpreter/src/main/scala-2.11/org/apache/toree/kernel/interpreter/scala/ScalaInterpreterSpecific.scala +++ b/scala-interpreter/src/main/scala-2.11/org/apache/toree/kernel/interpreter/scala/ScalaInterpreterSpecific.scala @@ -325,16 +325,20 @@ trait ScalaInterpreterSpecific extends SettingsProducerLike { this: ScalaInterpr * @return tuple of (completeStatus, indent) */ override def isComplete(code: String): (String, String) = { - val parse = iMain.parse - parse(code) match { - case t: parse.Error => ("invalid", "") - case t: parse.Success => ("complete", "") - case t: parse.Incomplete => - val lastLine = code.split("\n").last - // For now lets just grab the indent of the current line, if none default to 2 spaces. - val indent = "\\s+".r.findFirstIn(lastLine).getOrElse(" ") - ("incomplete", indent) + val result = doQuietly { + val parse = iMain.parse + parse(code) match { + case t: parse.Error => ("invalid", "") + case t: parse.Success => ("complete", "") + case t: parse.Incomplete => + val lastLine = code.split("\n").last + // For now lets just grab the indent of the current line, if none default to 2 spaces. + val indent = "\\s+".r.findFirstIn(lastLine).getOrElse(" ") + ("incomplete", indent) + } } + lastResultOut.reset() + result } override def newSettings(args: List[String]): Settings = { http://git-wip-us.apache.org/repos/asf/incubator-toree/blob/e21c2d4f/test_toree.py ---------------------------------------------------------------------- diff --git a/test_toree.py b/test_toree.py index d10a0f7..2e25324 100644 --- a/test_toree.py +++ b/test_toree.py @@ -39,6 +39,24 @@ class ToreeScalaKernelTests(jupyter_kernel_test.KernelTests): {'code': '%showtypes off\n1', 'result': '1'} ] + complete_samples = [ + "6 * 7", + "case class Foo(bar: Int)", + """def f(x: Int) = { + x + 8 + }""", + ] + + incomplete_samples = [ + "case class Foo(bar: ", + "6 * ", + ] + + invalid_code_samples = [ + "case class Foo(bar)", + "* 6", + ] + 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'} ]