diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index b6d855fcc0dcabd9bc4072ab6c4d1a76bba629f0..d11f39959f967d9f73e7f47ee592157cf3b30ae4 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -10,3 +10,8 @@ add_subdirectory(multidomain)
 add_subdirectory(nonlinear)
 add_subdirectory(porousmediumflow)
 add_subdirectory(discretization)
+
+# if Python bindings are enabled, include Python binding tests
+if(DUNE_ENABLE_PYTHONBINDINGS)
+  add_subdirectory(python)
+endif()
diff --git a/test/python/CMakeLists.txt b/test/python/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c63ae7c4a07c9a4539904955d6369a99b85f01da
--- /dev/null
+++ b/test/python/CMakeLists.txt
@@ -0,0 +1,4 @@
+dune_python_add_test(NAME test_py_gridgeometry
+                     COMMAND ${PYTHON_EXECUTABLE} test_py_gridgeometry.py
+                     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+                     LABELS python unit)
diff --git a/test/python/test_py_gridgeometry.py b/test/python/test_py_gridgeometry.py
new file mode 100755
index 0000000000000000000000000000000000000000..ca25ba36a1b50bd4d463f7f44be0eb15cfaae392
--- /dev/null
+++ b/test/python/test_py_gridgeometry.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+
+from dune.grid import structuredGrid
+from dumux.discretization import GridGeometry
+
+gridView = structuredGrid([0,0],[1,1],[5,5])
+
+gridGeometry = GridGeometry(gridView, discMethod="cctpfa")
+gridGeometry.update()
+
+print("The total number of scvs is {}".format(gridGeometry.numScv()))
+print("The total number of scvfs is {}".format(gridGeometry.numScvf()))
+
+for e in gridView.elements:
+    fvGeometry = gridGeometry.localView()
+    fvGeometry.bind(e)
+
+    for scv in fvGeometry.scvs():
+        print("scv dofIndex: {}".format(scv.dofIndex()))
+        print("scv center: {}".format(scv.center()))
+        print("scv volume: {}".format(scv.volume()))