diff --git a/test/test_meshmode.py b/test/test_meshmode.py
index c6859cc94754577d462d32e7a2e925c8240d12d6..e2251a36a1b1fb47ef071c7b4d5001ced25deba0 100644
--- a/test/test_meshmode.py
+++ b/test/test_meshmode.py
@@ -48,26 +48,44 @@ import logging
 logger = logging.getLogger(__name__)
 
 
-# {{{ partition_mesh
-'''
-#TODO facial_adjacency_groups is not available in generate_torus.
-def test_partition_torus_mesh():
-    from meshmode.mesh.generation import generate_torus
-    my_mesh = generate_torus(2, 1, n_outer=2, n_inner=2)
+def test_partition_interpolation(ctx_getter):
+    cl_ctx = ctx_getter()
+    queue = cl.CommandQueue(cl_ctx)
+    order = 4
+    group_factory = PolynomialWarpAndBlendGroupFactory(order)
+    n = 3
+    dim = 2
+    num_parts = 7
+    from meshmode.mesh.generation import generate_warped_rect_mesh
+    mesh = generate_warped_rect_mesh(dim, order=order, n=n)
+
+    adjacency_list = np.zeros((mesh.nelements,), dtype=set)
+    for elem in range(mesh.nelements):
+        adjacency_list[elem] = set()
+        starts = mesh.nodal_adjacency.neighbors_starts
+        for n in range(starts[elem], starts[elem + 1]):
+            adjacency_list[elem].add(mesh.nodal_adjacency.neighbors[n])
 
-    part_per_element = np.array([0, 1, 2, 1, 1, 2, 1, 0])
+    from pymetis import part_graph
+    (_, p) = part_graph(num_parts, adjacency=adjacency_list)
+    part_per_element = np.array(p)
 
     from meshmode.mesh.processing import partition_mesh
-    (part_mesh0, _) = partition_mesh(my_mesh, part_per_element, 0)
-    (part_mesh1, _) = partition_mesh(my_mesh, part_per_element, 1)
-    (part_mesh2, _) = partition_mesh(my_mesh, part_per_element, 2)
+    part_meshes = [
+        partition_mesh(mesh, part_per_element, i)[0] for i in range(num_parts)]
 
-    assert part_mesh0.nelements == 2
-    assert part_mesh1.nelements == 4
-    assert part_mesh2.nelements == 2
-'''
+    from meshmode.discretization import Discretization
+    vol_discrs = [Discretization(cl_ctx, part_meshes[i], group_factory) 
+                    for i in range(num_parts)]
+
+    from meshmode.discretization.connection import (make_face_restriction,
+            check_connection)
+    bdry_connections = [make_face_restriction(vol_discrs[i], group_factory, 
+                            FRESTR_INTERIOR_FACES) for i in range(num_parts)]
 
 
+# {{{ partition_mesh
+
 def test_partition_boxes_mesh():
     n = 5
     num_parts = 7