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/09/27 17:23:44 UTC

[5/8] incubator-toree git commit: Added test for is_complete using the kernel tester.

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 <mn...@vm179.corp.maxpointinteractive.com>
Authored: Tue Sep 20 19:09:02 2016 -0400
Committer: Marius van Niekerk <ma...@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'}
     ]