def execute_tests(tests, test_data, logger_class, strict): results = {TestResult.SKIP: 0, TestResult.OK: 0, TestResult.WARNING: 0, TestResult.ERROR: 0} for test_name, test in tests.items(): logger.debug("Spúšťam test %s", test_name) # deepcopy lebo nechceme aby prišiel niekto, v teste zmenil test_data a tak rozbil všetky # ostatné testy status = test["run"](logger_class("checker." + test_name), copy.deepcopy(test_data)) if status == TestResult.WARNING and strict: status = TestResult.ERROR results[status] += 1 if status == TestResult.ERROR: logger.error("Test %s ZLYHAL!", test_name) elif status == TestResult.WARNING: logger.warning("Test %s skončil s varovaním!", test_name) elif status == TestResult.OK: logger.debug("Test %s je ok.", test_name) elif status == TestResult.SKIP: logger.debug("Test %s skippol sám seba", test_name) return results
def test_get_mysql_exception(self): tests = { errors.ProgrammingError: ( '24', '25', '26', '27', '28', '2A', '2C', '34', '35', '37', '3C', '3D', '3F', '42'), errors.DataError: ('02', '21', '22'), errors.NotSupportedError: ('0A',), errors.IntegrityError: ('23', 'XA'), errors.InternalError: ('40', '44'), errors.OperationalError: ('08', 'HZ', '0K'), errors.DatabaseError: ('07', '2B', '2D', '2E', '33', 'ZZ', 'HY'), } msg = 'Ham' for exp, errlist in tests.items(): for sqlstate in errlist: errno = 1000 res = errors.get_mysql_exception(errno, msg, sqlstate) self.assertTrue(isinstance(res, exp), "SQLState {0} should be {1}".format( sqlstate, exp.__name__)) self.assertEqual(sqlstate, res.sqlstate) self.assertEqual("{0} ({1}): {2}".format(errno, sqlstate, msg), str(res)) errno = 1064 sqlstate = "42000" msg = "You have an error in your SQL syntax" exp = "1064 (42000): You have an error in your SQL syntax" err = errors.get_mysql_exception(errno, msg, sqlstate) self.assertEqual(exp, str(err)) # Hardcoded exceptions self.assertTrue(isinstance(errors._ERROR_EXCEPTIONS, dict)) self.assertTrue( isinstance(errors.get_mysql_exception(1243, None, None), errors.ProgrammingError)) # Custom exceptions errors._CUSTOM_ERROR_EXCEPTIONS[1064] = errors.DatabaseError self.assertTrue( isinstance(errors.get_mysql_exception(1064, None, None), errors.DatabaseError)) errors._CUSTOM_ERROR_EXCEPTIONS = {}
def test_get_mysql_exception(self): tests = { errors.ProgrammingError: ('24', '25', '26', '27', '28', '2A', '2C', '34', '35', '37', '3C', '3D', '3F', '42'), errors.DataError: ('02', '21', '22'), errors.NotSupportedError: ('0A', ), errors.IntegrityError: ('23', 'XA'), errors.InternalError: ('40', '44'), errors.OperationalError: ('08', 'HZ', '0K'), errors.DatabaseError: ('07', '2B', '2D', '2E', '33', 'ZZ', 'HY'), } msg = 'Ham' for exp, errlist in tests.items(): for sqlstate in errlist: errno = 1000 res = errors.get_mysql_exception(errno, msg, sqlstate) self.assertTrue( isinstance(res, exp), "SQLState %s should be %s" % (sqlstate, exp.__name__)) self.assertEqual(sqlstate, res.sqlstate) self.assertEqual("%d (%s): %s" % (errno, sqlstate, msg), str(res)) errno = 1064 sqlstate = "42000" msg = "You have an error in your SQL syntax" exp = "1064 (42000): You have an error in your SQL syntax" err = errors.get_mysql_exception(errno, msg, sqlstate) self.assertEqual(exp, str(err)) # Hardcoded exceptions self.assertTrue(isinstance(errors._ERROR_EXCEPTIONS, dict)) self.assertTrue( isinstance(errors.get_mysql_exception(1243, None, None), errors.ProgrammingError)) # Custom exceptions errors._CUSTOM_ERROR_EXCEPTIONS[1064] = errors.DatabaseError self.assertTrue( isinstance(errors.get_mysql_exception(1064, None, None), errors.DatabaseError)) errors._CUSTOM_ERROR_EXCEPTIONS = {}
def test_get_mysql_exception(self): tests = { errors.ProgrammingError: ("24", "25", "26", "27", "28", "2A", "2C", "34", "35", "37", "3C", "3D", "3F", "42"), errors.DataError: ("02", "21", "22"), errors.NotSupportedError: ("0A", ), errors.IntegrityError: ("23", "XA"), errors.InternalError: ("40", "44"), errors.OperationalError: ("08", "HZ", "0K"), errors.DatabaseError: ("07", "2B", "2D", "2E", "33", "ZZ", "HY"), } msg = "Ham" for exp, errlist in tests.items(): for sqlstate in errlist: errno = 1000 res = errors.get_mysql_exception(errno, msg, sqlstate) self.assertTrue( isinstance(res, exp), "SQLState {0} should be {1}".format( sqlstate, exp.__name__)) self.assertEqual(sqlstate, res.sqlstate) self.assertEqual("{0} ({1}): {2}".format(errno, sqlstate, msg), str(res)) errno = 1064 sqlstate = "42000" msg = "You have an error in your SQL syntax" exp = "1064 (42000): You have an error in your SQL syntax" err = errors.get_mysql_exception(errno, msg, sqlstate) self.assertEqual(exp, str(err)) # Hardcoded exceptions self.assertTrue(isinstance(errors._ERROR_EXCEPTIONS, dict)) self.assertTrue( isinstance(errors.get_mysql_exception(1243, None, None), errors.ProgrammingError))
def test_get_mysql_exception(self): tests = { errors.ProgrammingError: ( "24", "25", "26", "27", "28", "2A", "2C", "34", "35", "37", "3C", "3D", "3F", "42"), errors.DataError: ("02", "21", "22"), errors.NotSupportedError: ("0A",), errors.IntegrityError: ("23", "XA"), errors.InternalError: ("40", "44"), errors.OperationalError: ("08", "HZ", "0K"), errors.DatabaseError: ("07", "2B", "2D", "2E", "33", "ZZ", "HY"), } msg = "Ham" for exp, errlist in tests.items(): for sqlstate in errlist: errno = 1000 res = errors.get_mysql_exception(errno, msg, sqlstate) self.assertTrue(isinstance(res, exp), "SQLState {0} should be {1}".format( sqlstate, exp.__name__)) self.assertEqual(sqlstate, res.sqlstate) self.assertEqual("{0} ({1}): {2}".format(errno, sqlstate, msg), str(res)) errno = 1064 sqlstate = "42000" msg = "You have an error in your SQL syntax" exp = "1064 (42000): You have an error in your SQL syntax" err = errors.get_mysql_exception(errno, msg, sqlstate) self.assertEqual(exp, str(err)) # Hardcoded exceptions self.assertTrue(isinstance(errors._ERROR_EXCEPTIONS, dict)) self.assertTrue( isinstance(errors.get_mysql_exception(1243, None, None), errors.ProgrammingError))