Changeset 135

Show
Ignore:
Timestamp:
08/09/06 05:45:17 (2 years ago)
Author:
mk
Message:

Created add_info method for Index class.
IndexUseTestFramework? renamed to IndexUnitTested?.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/mk/cheesecake/cheesecake_index.py

    r134 r135  
    477477        return self.decide(cheesecake, 'after_download') 
    478478 
     479    def add_info(self, info_line): 
     480        """Add information about index computation process, which will 
     481        be visible with --verbose flag. 
     482        """ 
     483        self.info += "[%s] %s\n" % (index_class_to_name(self.name), info_line) 
     484 
    479485    def _get_max_value(self): 
    480486        if self.subindices: 
     
    860866            missing = self.get_not_used(dictionary.keys()) 
    861867            importance = {30: ' critical', 20: ' important'} 
    862             info = [] 
    863  
    864             positive_msg = "[%s] Package has%s %s: %s.\n" 
    865             negative_msg = "[%s] Package doesn't have%s %s: %s.\n" 
     868 
     869            positive_msg = "Package has%s %s: %s." 
     870            negative_msg = "Package doesn't have%s %s: %s." 
    866871 
    867872            for key in dictionary.keys(): 
     
    869874                if key in missing: 
    870875                    msg = negative_msg 
    871                 info.append(msg % (index_class_to_name(self.name), importance.get(dictionary[key], ''), what, str(key))) 
    872  
    873             return ''.join(info) 
     876                self.add_info(msg % (importance.get(dictionary[key], ''), what, str(key))) 
    874877 
    875878        # Compute required files. 
    876879        files_count, files_value = self._compute_from_rules(files_list, package_dir, self.cheese_files) 
    877         self.info = make_info(self.cheese_files, 'file') 
     880        make_info(self.cheese_files, 'file') 
    878881 
    879882        # Compute required directories. 
    880883        dirs_count, dirs_value = self._compute_from_rules(dirs_list, package_dir, self.cheese_dirs) 
    881         self.info += make_info(self.cheese_dirs, 'directory') 
     884        make_info(self.cheese_dirs, 'directory') 
    882885 
    883886        self.value = files_value + dirs_value 
     
    980983        return self.value 
    981984 
    982 class IndexUseTestFramework(Index): 
    983     """Check if a package uses any of known test frameworks. 
     985class IndexUnitTested(Index): 
     986    """Check if the package have unit tests which can be easily found by 
     987    any of known test frameworks. 
    984988    """ 
    985989    max_value = 30 
    986990 
    987991    def compute(self, doctests_count, unittests_count, files_list, classes, methods): 
    988         frameworks_found = False 
     992        unit_tested = False 
    989993 
    990994        if doctests_count > 0: 
    991             frameworks_found = True 
     995            self.add_info("Package includes doctest tests.") 
     996            unit_tested = True 
    992997 
    993998        if unittests_count > 0: 
    994             frameworks_found = True 
     999            self.add_info("Package have tests that inherit from unittest.TestCase.") 
     1000            unit_tested = True 
    9951001 
    9961002        if get_files_of_type(files_list, 'test'): 
    997             frameworks_found = True 
     1003            self.add_info("Package have filenames which probably contain tests (in format test_* or *_test)") 
     1004            unit_tested = True 
    9981005 
    9991006        for method in methods: 
    10001007            if self._is_test_method(method): 
    1001                 frameworks_found = True 
     1008                self.add_info("Some classes have setUp/tearDown methods which are commonly used in unit tests.") 
     1009                unit_tested = True 
    10021010                break 
    10031011 
    1004         if frameworks_found: 
     1012        if unit_tested: 
    10051013            self.value = self.max_value 
    1006             self.details = "use one or more of known test frameworks" 
     1014            self.details = "have unit tests" 
    10071015        else: 
    10081016            self.value = 0 
    1009             self.details = "don't use any of known test frameworks" 
     1017            self.details = "don't have unit tests" 
    10101018 
    10111019        return self.value 
     
    11061114        IndexPyLint, 
    11071115        #IndexUnitTests, 
    1108         IndexUseTestFramework
     1116        IndexUnitTested
    11091117    ] 
    11101118 
  • branches/mk/tests/unit/test_index_use_test_framework.py

    r110 r135  
    88 
    99from cheesecake.cheesecake_index import Cheesecake 
    10 from cheesecake.cheesecake_index import IndexUseTestFramework 
     10from cheesecake.cheesecake_index import IndexUnitTested 
    1111from cheesecake import logger 
    1212 
     
    5151""" 
    5252 
    53 class TestIndexUseTestFramework(object): 
     53class TestIndexUnitTested(object): 
    5454    def setUp(self): 
    5555        self.sandbox_dir = tempfile.mkdtemp() 
     
    6060 
    6161    def test_doctest(self): 
    62         "Test use_test_framework index with package that uses doctest." 
     62        "Test unit_tested index with package that uses doctest." 
    6363        def setup(project_dir): 
    6464            main_filename = os.path.join(project_dir, 'main.py') 
     
    100100            asserts(cheesecake) 
    101101 
    102         index = IndexUseTestFramework() 
     102        index = IndexUnitTested() 
    103103        index.compute_with(cheesecake) 
    104104 
    105         # Use of test framework should be discovered and package should get maximum score. 
     105        # Unit tests presence should be discovered and package should get maximum score. 
    106106        print "Index: %d/%d -- %s" % (index.value, index.max_value, index.details) 
    107107        assert index.value == index.max_value 
    108108 
    109109    def test_special_filenames_1(self): 
    110         "Test use_test_framework index with package that uses test_* filenames." 
     110        "Test unit_tested index with package that uses test_* filenames." 
    111111        def setup(project_dir): 
    112112            files = ['some_module.py', 'README', 'test_some_module.py'] 
     
    116116 
    117117    def test_special_filenames_2(self): 
    118         "Test use_test_framework index with package that uses *_test filenames." 
     118        "Test unit_tested index with package that uses *_test filenames." 
    119119        def setup(project_dir): 
    120120            files = ['some_module.py', 'README', 'some_module_test.py'] 
     
    124124 
    125125    def test_special_methods(self): 
    126         "Test use_test_framework index with package that uses setUp/tearDown methods." 
     126        "Test unit_tested index with package that uses setUp/tearDown methods." 
    127127        def setup(project_dir): 
    128128            test_filename = os.path.join(project_dir, 'do_checks.py') 
     
    132132 
    133133    def test_unittest_classes(self): 
    134         "Test use_test_framework index with package that uses unittest library." 
     134        "Test unit_tested index with package that uses unittest library." 
    135135        def setup(project_dir): 
    136136            test_filename = os.path.join(project_dir, 'do_checks.py')