# Path: checkpy/caches.py
# class _Cache(dict):
# 	def __init__(self, *args, **kwargs):
# def cache(*keys):
# 	def cacheWrapper(func):
# 		def cachedFuncWrapper(*args, **kwargs):
# def clearAllCaches():
# 
# Path: checkpy/entities/exception.py
# class CheckpyError(Exception):
# class SourceException(CheckpyError):
# class InputError(CheckpyError):
# class TestError(CheckpyError):
# class DownloadError(CheckpyError):
# class ExitError(CheckpyError):
# class PathError(CheckpyError):
# 	def __init__(self, exception = None, message = "", output = "", stacktrace = ""):
# 	def output(self):
# 	def stacktrace(self):
# 	def __str__(self):
# 	def __repr__(self):


import traceback
from functools import wraps
from checkpy import caches
from checkpy.entities import exception

class Test(object):
	def __init__(self, fileName, priority):
		self._fileName = fileName
		self._priority = priority

	def __lt__(self, other):
		return self._priority < other._priority

	@property
	def fileName(self):
		return self._fileName

	@caches.cache()
	def run(self):
		try:
			result = self.test()

			if type(result) == tuple:
				hasPassed, info = result
			else:
				hasPassed, info = result, ""

# Path: checkpy/caches.py
# class _Cache(dict):
# 	def __init__(self, *args, **kwargs):
# def cache(*keys):
# 	def cacheWrapper(func):
# 		def cachedFuncWrapper(*args, **kwargs):
# def clearAllCaches():
# 
# Path: checkpy/entities/exception.py
# class CheckpyError(Exception):
# class SourceException(CheckpyError):
# class InputError(CheckpyError):
# class TestError(CheckpyError):
# class DownloadError(CheckpyError):
# class ExitError(CheckpyError):
# class PathError(CheckpyError):
# 	def __init__(self, exception = None, message = "", output = "", stacktrace = ""):
# 	def output(self):
# 	def stacktrace(self):
# 	def __str__(self):
# 	def __repr__(self):


# Path: checkpy/tests.py
import traceback
from functools import wraps
from checkpy import caches
from checkpy.entities import exception


class Test(object):
	def __init__(self, fileName, priority):
		self._fileName = fileName
		self._priority = priority

	def __lt__(self, other):
		return self._priority < other._priority

	@property
	def fileName(self):
		return self._fileName

	@caches.cache()
	def run(self):
		try:
			result = self.test()

			if type(result) == tuple:
				hasPassed, info = result
			else:
				hasPassed, info = result, ""

		except exception.CheckpyError as e: