def test_that_all_rules_have_object_editor_templates(self): rule_dir = os.path.join(os.getcwd(), feconf.RULES_DIR) at_least_one_rule_found = False clses = [] for loader, name, _ in pkgutil.iter_modules(path=[rule_dir]): if name.endswith('_test') or name == 'base': continue module = loader.find_module(name).load_module(name) for name, clazz in inspect.getmembers(module, inspect.isclass): param_list = rule_domain.get_param_list(clazz.description) for (param_name, param_obj_type) in param_list: # TODO(sll): Get rid of this special case. if param_obj_type.__name__ == 'NonnegativeInt': continue self.assertTrue( param_obj_type.has_editor_js_template(), msg='(%s)' % clazz.description) at_least_one_rule_found = True clses.append(clazz) self.assertTrue(at_least_one_rule_found)
def test_that_all_rules_have_object_editor_templates(self): rule_dir = os.path.join(os.getcwd(), feconf.RULES_DIR) num_rules = 0 for loader, name, _ in pkgutil.iter_modules(path=[rule_dir]): if name.endswith('_test') or name == 'base': continue module = loader.find_module(name).load_module(name) for name, clazz in inspect.getmembers(module, inspect.isclass): num_rules += 1 param_list = rule_domain.get_param_list(clazz.description) for (_, param_obj_type) in param_list: # TODO(sll): Get rid of these special cases. if param_obj_type.__name__ in [ 'NonnegativeInt', 'ListOfGraph', 'ListOfCodeEvaluation', 'ListOfCoordTwoDim', 'SetOfNormalizedString']: continue self.assertTrue( param_obj_type.has_editor_js_template(), msg='(%s)' % clazz.description) self.assertEqual(EXPECTED_TOTAL_NUMBER_OF_RULES, num_rules)
def test_that_all_rules_have_object_editor_templates(self): rule_dir = os.path.join(os.getcwd(), feconf.RULES_DIR) at_least_one_rule_found = False clses = [] for loader, name, _ in pkgutil.iter_modules(path=[rule_dir]): if name.endswith("_test") or name == "base": continue module = loader.find_module(name).load_module(name) for name, clazz in inspect.getmembers(module, inspect.isclass): param_list = rule_domain.get_param_list(clazz.description) for (param_name, param_obj_type) in param_list: # TODO(sll): Get rid of these special cases. if param_obj_type.__name__ in [ "NonnegativeInt", "ListOfGraph", "ListOfCodeEvaluation", "ListOfCoordTwoDim", "SetOfNormalizedString", ]: continue self.assertTrue(param_obj_type.has_editor_js_template(), msg="(%s)" % clazz.description) at_least_one_rule_found = True clses.append(clazz) self.assertTrue(at_least_one_rule_found)
def test_that_all_rules_have_object_editor_templates(self): rule_dir = os.path.join(os.getcwd(), feconf.RULES_DIR) at_least_one_rule_found = False clses = [] for loader, name, _ in pkgutil.iter_modules(path=[rule_dir]): if name.endswith('_test') or name == 'base': continue module = loader.find_module(name).load_module(name) for name, clazz in inspect.getmembers(module, inspect.isclass): param_list = rule_domain.get_param_list(clazz.description) for (param_name, param_obj_type) in param_list: # TODO(sll): Get rid of this special case. if param_obj_type.__name__ == 'NonnegativeInt': continue self.assertTrue(param_obj_type.has_editor_js_template(), msg='(%s)' % clazz.description) at_least_one_rule_found = True clses.append(clazz) self.assertTrue(at_least_one_rule_found)
def test_get_default_object_values_function(self): rule_dir = os.path.join(os.getcwd(), feconf.RULES_DIR) expected_result = {} for loader, name, _ in pkgutil.iter_modules(path=[rule_dir]): if name.endswith('_test') or name == 'base': continue module = loader.find_module(name).load_module(name) for name, clazz in inspect.getmembers(module, inspect.isclass): param_list = rule_domain.get_param_list(clazz.description) for (_, param_obj_type) in param_list: expected_result[param_obj_type.__name__] = ( param_obj_type.default_value) self.assertEqual( expected_result, rule_domain.get_default_object_values())
def test_that_all_rule_input_fields_have_default_values(self): rule_dir = os.path.join(os.getcwd(), feconf.RULES_DIR) num_rules = 0 for loader, name, _ in pkgutil.iter_modules(path=[rule_dir]): if name.endswith('_test') or name == 'base': continue module = loader.find_module(name).load_module(name) for name, clazz in inspect.getmembers(module, inspect.isclass): num_rules += 1 param_list = rule_domain.get_param_list(clazz.description) for (_, param_obj_type) in param_list: self.assertIsNotNone( param_obj_type.default_value, msg=( 'No default value specified for object class %s.' % param_obj_type.__name__)) self.assertEqual(EXPECTED_TOTAL_NUMBER_OF_RULES, num_rules)