diff --git a/xlsxwriter/test/workbook/test_check_sheetname.py b/xlsxwriter/test/workbook/test_check_sheetname.py index 25a54bf16..62e84f670 100644 --- a/xlsxwriter/test/workbook/test_check_sheetname.py +++ b/xlsxwriter/test/workbook/test_check_sheetname.py @@ -40,6 +40,12 @@ def test_check_sheetname(self): exp = "Sheet4" self.assertEqual(got, exp) + def test_check_sheetname_with_incorrect_dtype(self): + """Test the _check_sheetname() method with exception""" + + name = 42 + self.assertRaises(TypeError, self.workbook._check_sheetname, name) + def test_check_sheetname_with_long_name(self): """Test the _check_sheetname() method with exception""" diff --git a/xlsxwriter/workbook.py b/xlsxwriter/workbook.py index c0994a7d0..708ffbddf 100644 --- a/xlsxwriter/workbook.py +++ b/xlsxwriter/workbook.py @@ -841,6 +841,11 @@ def _check_sheetname(self, sheetname, is_chartsheet=False): else: sheetname = self.sheet_name + str(self.sheetname_count) + if not isinstance(sheetname, str): + raise TypeError( + "The sheet name must be of type str, is type %s." % type(sheetname) + ) + # Check that sheet sheetname is <= 31. Excel limit. if len(sheetname) > 31: raise InvalidWorksheetName(