diff --git a/tests/test_io.py b/tests/test_io.py
new file mode 100644
index 00000000..3167eb8b
--- /dev/null
+++ b/tests/test_io.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+"""
+Tests for io methods
+
+File: tests/test_io.py
+
+Copyright 2024 NeuroML contributors
+"""
+
+import logging
+import os
+
+from pyneuroml.errors import NMLFileTypeError
+from pyneuroml.io import confirm_file_type
+
+from . import BaseTestCase
+
+logger = logging.getLogger(__name__)
+logger.setLevel(logging.DEBUG)
+
+
+class TestIo(BaseTestCase):
+ """Test io module"""
+
+ def test_confirm_file_type(self):
+ """Test confirm_file_type method."""
+
+ # LEMS file with xml extension
+ test_lems_file = "a_test_lems_file.xml"
+ with open(test_lems_file, "w") as f:
+ print(" ", file=f)
+ confirm_file_type(test_lems_file, ["xml"])
+
+ # lems file with non xml extension but provided tag
+ test_lems_file2 = "a_test_lems_file.lems"
+ with open(test_lems_file2, "w") as f:
+ print(" ", file=f)
+
+ confirm_file_type(test_lems_file2, ["xml"], "lems")
+
+ # lems file with non xml and bad tag: should fail
+ with self.assertRaises(NMLFileTypeError):
+ test_lems_file3 = "a_bad_test_lems_file.lems"
+ with open(test_lems_file3, "w") as f:
+ print(" ", file=f)
+
+ confirm_file_type(test_lems_file3, ["xml"], "lems")
+
+ os.unlink(test_lems_file)
+ os.unlink(test_lems_file2)
+ os.unlink(test_lems_file3)