diff --git a/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java b/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java
index 3451238..3a571b7 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java
@@ -19,14 +19,12 @@
 
 import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.syntax.util.EvaluationTestCase;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
 
 /**
  * A test class for functions and scoping.
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
index 674241d..5c90866 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
@@ -1573,9 +1573,13 @@
   @Test
   public void testPyListExtend() throws Exception {
     new BuildTest()
-        .setUp("FOO = ['a', 'b']", "FOO.extend(['c', 'd'])")
-        .testLookup("FOO", MutableList.of(env, "a", "b", "c", "d"))
-        .testIfErrorContains("Type tuple has no function extend(list)", "(1, 2).extend([3, 4])");
+        .setUp("FOO = ['a', 'b']", "FOO.extend(['c', 'd'])", "FOO.extend(('e', 'f'))")
+        .testLookup("FOO", MutableList.of(env, "a", "b", "c", "d", "e", "f"))
+        .testIfErrorContains("Type tuple has no function extend(list)", "(1, 2).extend([3, 4])")
+        .testIfErrorContains(
+            "Method list.extend(items: sequence) is not applicable for arguments "
+                + "(int): 'items' is int, but should be sequence",
+            "[1, 2].extend(3)");
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
index 3387fac..8cd35f2 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
@@ -428,11 +428,11 @@
 
   @Test
   public void testAugmentedAssign() throws Exception {
-    assertEquals("[x = x + 1\n]", parseFile("x += 1").toString());
-    assertEquals("[x = x - 1\n]", parseFile("x -= 1").toString());
-    assertEquals("[x = x * 1\n]", parseFile("x *= 1").toString());
-    assertEquals("[x = x / 1\n]", parseFile("x /= 1").toString());
-    assertEquals("[x = x % 1\n]", parseFile("x %= 1").toString());
+    assertEquals("[x += 1\n]", parseFile("x += 1").toString());
+    assertEquals("[x -= 1\n]", parseFile("x -= 1").toString());
+    assertEquals("[x *= 1\n]", parseFile("x *= 1").toString());
+    assertEquals("[x /= 1\n]", parseFile("x /= 1").toString());
+    assertEquals("[x %= 1\n]", parseFile("x %= 1").toString());
   }
 
   @Test
