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()
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()
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
def test_wipe_ccr(self): gc = BasicGrammarContainer() gc.set_ccr = Mock() gc.wipe_ccr() gc.set_ccr.assert_called_with([])