예제 #1
0
    def test_set_non_ccr_delete(self):
        gc = BasicGrammarContainer()
        gc.set_non_ccr("test", self.grammar)
        gc.set_non_ccr("test", None)

        self.rule1.disable.assert_called_with()
        self.rule2.disable.assert_called_with()
        self.grammar.disable.assert_called_with()
        self.grammar.unload.assert_called_with()
예제 #2
0
    def test_set_ccr_delete(self):
        gc = BasicGrammarContainer()
        gc.set_ccr([self.grammar])
        gc.set_ccr([])

        self.rule1.disable.assert_called_with()
        self.rule2.disable.assert_called_with()
        self.grammar.disable.assert_called_with()
        self.grammar.unload.assert_called_with()
예제 #3
0
    def _create_grammar_manager(merger, content_loader, hooks_runner, rule_config, smrc,
                                mapping_rule_maker, transformers_runner):
        """
        This is where settings should be used to alter the dependency injection being done.
        Setting things to alternate implementations can live here.

        :param merger:
        :param content_loader:
        :param hooks_runner:
        :param rule_config
        :param smrc
        :param mapping_rule_maker
        :param transformers_runner
        :return:
        """

        ccr_toggle = CCRToggle()

        ccr_rule_validator = Nexus._create_ccr_rule_validator()
        details_validator = Nexus._create_details_validator()
        combo_validator = Nexus._create_combo_validator()

        timer = settings.SETTINGS["grammar_reloading"]["reload_timer_seconds"]
        observable = TimerReloadObservable(timer)
        if settings.SETTINGS["grammar_reloading"]["reload_trigger"] == "manual":
            observable = ManualReloadObservable()

        grammars_container = BasicGrammarContainer()

        activator = GrammarActivator(lambda rule: isinstance(rule, MergeRule))

        companion_config = CompanionConfig()

        gm = GrammarManager(rule_config,
                            merger,
                            content_loader,
                            ccr_rule_validator,
                            details_validator,
                            observable,
                            activator,
                            mapping_rule_maker,
                            grammars_container,
                            hooks_runner,
                            ccr_toggle,
                            smrc,
                            transformers_runner,
                            companion_config,
                            combo_validator)
        return gm
예제 #4
0
 def test_wipe_ccr(self):
     gc = BasicGrammarContainer()
     gc.set_ccr = Mock()
     gc.wipe_ccr()
     gc.set_ccr.assert_called_with([])