def _run_it(self, setup=None, asserts=None): package_name = 'index_test' project_dir = os.path.join(self.sandbox_dir, package_name) os.mkdir(project_dir) if setup: setup(project_dir) logger.setconsumer('console', logger.STDOUT) console_log = logger.MultipleProducer('cheesecake console') # Aliasing package_name because of Python optimizations. # ("package_name = package_name" will simply not work) pkg_name = package_name class CheesecakeMockup(Cheesecake): def __init__(self): pass sandbox = self.sandbox_dir package_name = pkg_name log = console_log cheesecake = CheesecakeMockup() cheesecake.walk_pkg() if asserts: asserts(cheesecake) index = IndexUnitTested() index.compute_with(cheesecake) # Unit tests presence should be discovered and package should get maximum score. print "Index: %d/%d -- %s" % (index.value, index.max_value, index.details) assert index.value == index.max_value
def test_unit_tests_index(self): test_dir = os.path.join(self.project_dir, 'test') os.mkdir(test_dir) test_filename = os.path.join(test_dir, 'test_some_function.py') dump_str_to_file(test_contents, test_filename) logger.setconsumer('console', logger.STDOUT) console_log = logger.MultipleProducer('cheesecake console') class CheesecakeMockup(object): files_list = [test_filename] functions = ["some_module.some_function", "some_module.other_function"] classes = ["some_module.SomeClass", "some_module.NotTestedClass"] package_dir = self.project_dir log = console_log index = IndexUnitTests() index.compute_with(CheesecakeMockup()) print("Index: %d/%d -- %s" % (index.value, index.max_value, index.details)) assert index.value == int(ceil(index.max_value * 2.0/4.0))
def test_long_file_list(self): "Test if pylint index works for long files lists." _package_dir = tempfile.mkdtemp() _files_list = map(lambda x: 'long_module_with_a_number_%d.py' % x, xrange(4000)) for filename in _files_list: create_empty_file(os.path.join(_package_dir, filename)) logger.setconsumer('console', logger.STDOUT) console_log = logger.MultipleProducer('cheesecake console') class CheesecakeMockup(object): package_dir = _package_dir files_list = _files_list log = console_log index = IndexPyLint() cheesecake = CheesecakeMockup() index.compute_with(cheesecake) assert index.details != "encountered an error during pylint execution" # Clean up. rmtree(_package_dir)