Changeset 135
- Timestamp:
- 08/09/06 05:45:17 (2 years ago)
- Files:
-
- branches/mk/cheesecake/cheesecake_index.py (modified) (5 diffs)
- branches/mk/tests/unit/test_index_use_test_framework.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/mk/cheesecake/cheesecake_index.py
r134 r135 477 477 return self.decide(cheesecake, 'after_download') 478 478 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 479 485 def _get_max_value(self): 480 486 if self.subindices: … … 860 866 missing = self.get_not_used(dictionary.keys()) 861 867 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." 866 871 867 872 for key in dictionary.keys(): … … 869 874 if key in missing: 870 875 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))) 874 877 875 878 # Compute required files. 876 879 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') 878 881 879 882 # Compute required directories. 880 883 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') 882 885 883 886 self.value = files_value + dirs_value … … 980 983 return self.value 981 984 982 class IndexUseTestFramework(Index): 983 """Check if a package uses any of known test frameworks. 985 class IndexUnitTested(Index): 986 """Check if the package have unit tests which can be easily found by 987 any of known test frameworks. 984 988 """ 985 989 max_value = 30 986 990 987 991 def compute(self, doctests_count, unittests_count, files_list, classes, methods): 988 frameworks_found = False992 unit_tested = False 989 993 990 994 if doctests_count > 0: 991 frameworks_found = True 995 self.add_info("Package includes doctest tests.") 996 unit_tested = True 992 997 993 998 if unittests_count > 0: 994 frameworks_found = True 999 self.add_info("Package have tests that inherit from unittest.TestCase.") 1000 unit_tested = True 995 1001 996 1002 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 998 1005 999 1006 for method in methods: 1000 1007 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 1002 1010 break 1003 1011 1004 if frameworks_found:1012 if unit_tested: 1005 1013 self.value = self.max_value 1006 self.details = " use one or more of known test frameworks"1014 self.details = "have unit tests" 1007 1015 else: 1008 1016 self.value = 0 1009 self.details = "don't use any of known test frameworks"1017 self.details = "don't have unit tests" 1010 1018 1011 1019 return self.value … … 1106 1114 IndexPyLint, 1107 1115 #IndexUnitTests, 1108 IndexU seTestFramework,1116 IndexUnitTested, 1109 1117 ] 1110 1118 branches/mk/tests/unit/test_index_use_test_framework.py
r110 r135 8 8 9 9 from cheesecake.cheesecake_index import Cheesecake 10 from cheesecake.cheesecake_index import IndexU seTestFramework10 from cheesecake.cheesecake_index import IndexUnitTested 11 11 from cheesecake import logger 12 12 … … 51 51 """ 52 52 53 class TestIndexU seTestFramework(object):53 class TestIndexUnitTested(object): 54 54 def setUp(self): 55 55 self.sandbox_dir = tempfile.mkdtemp() … … 60 60 61 61 def test_doctest(self): 62 "Test u se_test_frameworkindex with package that uses doctest."62 "Test unit_tested index with package that uses doctest." 63 63 def setup(project_dir): 64 64 main_filename = os.path.join(project_dir, 'main.py') … … 100 100 asserts(cheesecake) 101 101 102 index = IndexU seTestFramework()102 index = IndexUnitTested() 103 103 index.compute_with(cheesecake) 104 104 105 # U se of test frameworkshould be discovered and package should get maximum score.105 # Unit tests presence should be discovered and package should get maximum score. 106 106 print "Index: %d/%d -- %s" % (index.value, index.max_value, index.details) 107 107 assert index.value == index.max_value 108 108 109 109 def test_special_filenames_1(self): 110 "Test u se_test_frameworkindex with package that uses test_* filenames."110 "Test unit_tested index with package that uses test_* filenames." 111 111 def setup(project_dir): 112 112 files = ['some_module.py', 'README', 'test_some_module.py'] … … 116 116 117 117 def test_special_filenames_2(self): 118 "Test u se_test_frameworkindex with package that uses *_test filenames."118 "Test unit_tested index with package that uses *_test filenames." 119 119 def setup(project_dir): 120 120 files = ['some_module.py', 'README', 'some_module_test.py'] … … 124 124 125 125 def test_special_methods(self): 126 "Test u se_test_frameworkindex with package that uses setUp/tearDown methods."126 "Test unit_tested index with package that uses setUp/tearDown methods." 127 127 def setup(project_dir): 128 128 test_filename = os.path.join(project_dir, 'do_checks.py') … … 132 132 133 133 def test_unittest_classes(self): 134 "Test u se_test_frameworkindex with package that uses unittest library."134 "Test unit_tested index with package that uses unittest library." 135 135 def setup(project_dir): 136 136 test_filename = os.path.join(project_dir, 'do_checks.py')
