diff --git a/.coverage b/.coverage
index 06eb502..80c2a68 100644
Binary files a/.coverage and b/.coverage differ
diff --git a/tests/test_dict2xml.py b/tests/test_dict2xml.py
index 7a54ab7..88e472e 100644
--- a/tests/test_dict2xml.py
+++ b/tests/test_dict2xml.py
@@ -499,3 +499,118 @@ def test_date_conversion_with_custom_attributes(self):
data = {"key": datetime.date(2023, 2, 15)}
result = dicttoxml.dicttoxml(data, attr_type=False, custom_root="custom")
assert b"2023-02-15" in result
+
+ def test_get_xml_type_unsupported(self):
+ """Test get_xml_type with unsupported type."""
+ class CustomClass:
+ pass
+
+ # Should return the class name for unsupported types
+ result = dicttoxml.get_xml_type(CustomClass())
+ assert result == "CustomClass"
+
+ def test_make_valid_xml_name_invalid_chars(self):
+ """Test make_valid_xml_name with invalid XML characters."""
+ key = "key"
+ attr = {}
+ new_key, new_attr = dicttoxml.make_valid_xml_name(key, attr)
+ assert new_key == "key"
+ assert new_attr == {"name": "<invalid>key"}
+
+ def test_dict2xml_str_invalid_type(self):
+ """Test dict2xml_str with invalid type."""
+ class CustomClass:
+ pass
+
+ item = {"key": CustomClass()}
+ with pytest.raises(TypeError, match="Unsupported data type:"):
+ dicttoxml.dict2xml_str(
+ attr_type=False,
+ attr={},
+ item=item,
+ item_func=lambda x: "item",
+ cdata=False,
+ item_name="test",
+ item_wrap=False,
+ parentIsList=False
+ )
+
+ def test_convert_dict_invalid_type(self):
+ """Test convert_dict with invalid type."""
+ class CustomClass:
+ pass
+
+ obj = {"key": CustomClass()}
+ with pytest.raises(TypeError, match="Unsupported data type:"):
+ dicttoxml.convert_dict(
+ obj=obj,
+ ids=[],
+ parent="root",
+ attr_type=False,
+ item_func=lambda x: "item",
+ cdata=False,
+ item_wrap=False
+ )
+
+ def test_convert_list_invalid_type(self):
+ """Test convert_list with invalid type."""
+ class CustomClass:
+ pass
+
+ items = [CustomClass()]
+ with pytest.raises(TypeError, match="Unsupported data type:"):
+ dicttoxml.convert_list(
+ items=items,
+ ids=None,
+ parent="root",
+ attr_type=False,
+ item_func=lambda x: "item",
+ cdata=False,
+ item_wrap=False
+ )
+
+ def test_convert_list_with_none(self):
+ """Test convert_list with None values."""
+ items = [None]
+ result = dicttoxml.convert_list(
+ items=items,
+ ids=None,
+ parent="root",
+ attr_type=True,
+ item_func=lambda x: "item",
+ cdata=False,
+ item_wrap=True
+ )
+ assert result == ' '
+
+ def test_convert_list_with_custom_ids(self):
+ """Test convert_list with custom IDs."""
+ items = ["test"]
+ result = dicttoxml.convert_list(
+ items=items,
+ ids=["custom_id"],
+ parent="root",
+ attr_type=False,
+ item_func=lambda x: "item",
+ cdata=False,
+ item_wrap=True
+ )
+ assert 'id="root_' in result
+ assert '>test<' in result
+
+ def test_convert_list_mixed_types(self):
+ """Test convert_list with a mix of valid and invalid types."""
+ class CustomClass:
+ pass
+
+ items = ["valid string", 100, {"a": "b"}, CustomClass()]
+ with pytest.raises(TypeError, match="Unsupported data type:"):
+ dicttoxml.convert_list(
+ items=items,
+ ids=None,
+ parent="root",
+ attr_type=False,
+ item_func=lambda x: "item",
+ cdata=False,
+ item_wrap=False
+ )