Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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())
Example #6
0
    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)