(self)
| 1217 | '"delimiter" must be a unicode character, not NoneType') |
| 1218 | |
| 1219 | def test_escapechar(self): |
| 1220 | class mydialect(csv.Dialect): |
| 1221 | delimiter = ";" |
| 1222 | escapechar = '\\' |
| 1223 | doublequote = False |
| 1224 | skipinitialspace = True |
| 1225 | lineterminator = '\r\n' |
| 1226 | quoting = csv.QUOTE_NONE |
| 1227 | d = mydialect() |
| 1228 | self.assertEqual(d.escapechar, "\\") |
| 1229 | |
| 1230 | mydialect.escapechar = "" |
| 1231 | with self.assertRaises(csv.Error) as cm: |
| 1232 | mydialect() |
| 1233 | self.assertEqual(str(cm.exception), |
| 1234 | '"escapechar" must be a unicode character or None, ' |
| 1235 | 'not a string of length 0') |
| 1236 | |
| 1237 | mydialect.escapechar = "**" |
| 1238 | with self.assertRaises(csv.Error) as cm: |
| 1239 | mydialect() |
| 1240 | self.assertEqual(str(cm.exception), |
| 1241 | '"escapechar" must be a unicode character or None, ' |
| 1242 | 'not a string of length 2') |
| 1243 | |
| 1244 | mydialect.escapechar = b"*" |
| 1245 | with self.assertRaises(csv.Error) as cm: |
| 1246 | mydialect() |
| 1247 | self.assertEqual(str(cm.exception), |
| 1248 | '"escapechar" must be a unicode character or None, ' |
| 1249 | 'not bytes') |
| 1250 | |
| 1251 | mydialect.escapechar = 4 |
| 1252 | with self.assertRaises(csv.Error) as cm: |
| 1253 | mydialect() |
| 1254 | self.assertEqual(str(cm.exception), |
| 1255 | '"escapechar" must be a unicode character or None, ' |
| 1256 | 'not int') |
| 1257 | |
| 1258 | def test_lineterminator(self): |
| 1259 | class mydialect(csv.Dialect): |
nothing calls this directly
no test coverage detected