def METHOD_NAME(self):
    """ Verify that the engine supports exclusive grammars. """
    # This is here as grammar exclusivity is context related.
    # Set up two grammars to test with.
    class TestRule(CompoundRule):
        def __init__(self, spec):
            CompoundRule.__init__(self, spec=spec)
            self.words = None
        def _process_recognition(self, node, extras):
            self.words = self.spec
    grammar1 = Grammar(name="Grammar1")
    grammar1.add_rule(TestRule(spec="grammar one"))
    grammar2 = Grammar(name="Grammar2")
    grammar2.add_rule(TestRule(spec="grammar two"))
    grammar3 = Grammar(name="Grammar3")
    grammar3.add_rule(TestRule(spec="grammar three"))
    grammar1.load()
    grammar2.load()
    grammar3.load()
    # Set grammar1 as exclusive and make some assertions.
    grammar1.set_exclusiveness(True)
    self.engine.mimic("grammar one")
    assert grammar1.rules[0].words == "grammar one"
    self.assertRaises(MimicFailure, self.engine.mimic, "grammar two")
    # Set grammar2 as exclusive and make some assertions.
    # Both exclusive grammars should be active.
    grammar2.set_exclusiveness(True)
    self.engine.mimic("grammar one")
    assert grammar1.rules[0].words == "grammar one"
    self.engine.mimic("grammar two")
    assert grammar2.rules[0].words == "grammar two"
    # Non-exclusive grammar 'grammar3' should not be active.
    self.assertRaises(MimicFailure, self.engine.mimic, "grammar three")
    # Set both grammars as no longer exclusive and make some assertions.
    grammar1.set_exclusiveness(False)
    grammar2.set_exclusiveness(False)
    if get_engine().name == 'natlink':
        self.temp_grammar.set_exclusiveness(False)
    self.engine.mimic("grammar one")
    assert grammar1.rules[0].words == "grammar one"
    self.engine.mimic("grammar two")
    assert grammar2.rules[0].words == "grammar two"
    self.engine.mimic("grammar three")
    assert grammar3.rules[0].words == "grammar three"