def test___init__(self): self.assertTrue(issubclass(errors.Error, Exception)) err = errors.Error() self.assertEqual(-1, err.errno) self.assertEqual("Unknown error", err.msg) self.assertEqual(None, err.sqlstate) msg = "Ham" err = errors.Error(msg, errno=1) self.assertEqual(1, err.errno) self.assertEqual("1: {0}".format(msg), err._full_msg) self.assertEqual(msg, err.msg) err = errors.Error("Ham", errno=1, sqlstate="SPAM") self.assertEqual(1, err.errno) self.assertEqual("1 (SPAM): Ham", err._full_msg) self.assertEqual("1 (SPAM): Ham", str(err)) err = errors.Error(errno=2000) self.assertEqual("Unknown MySQL error", err.msg) self.assertEqual("2000: Unknown MySQL error", err._full_msg) err = errors.Error(errno=2003, values=("/path/to/ham", 2)) self.assertEqual( "2003: Can't connect to MySQL server on '/path/to/ham' (2)", err._full_msg) self.assertEqual("Can't connect to MySQL server on '/path/to/ham' (2)", err.msg) err = errors.Error(errno=2001, values=("ham", )) if "(Warning:" in str(err): self.fail("Found %d in error message.") err = errors.Error(errno=2003, values=("ham", )) self.assertEqual( "2003: Can't connect to MySQL server on '%-.100s' (%s) " "(Warning: not enough arguments for format string)", err._full_msg)
def test___str__(self): msg = "Spam" self.assertEqual("Spam", str(errors.Error(msg))) self.assertEqual("1: Spam", str(errors.Error(msg, 1))) self.assertEqual("1 (XYZ): Spam", str(errors.Error(msg, 1, sqlstate="XYZ")))