예제 #1
0
 def test_retrieving_non_existing_localized_names(self):
     """
     When a non-existing localized name is requested, a warning must be 
     issued and the global name returned.
     
     """
     bind = Bind("foo", String("hey"), es="fulano")
     logging_fixture = LoggingHandlerFixture()
     eq_(bind.get_localized_name("fr"), "foo")
     # Checking for the the warning:
     eq_(len(logging_fixture.handler.messages["warning"]), 1)
     warning = logging_fixture.handler.messages["warning"][0]
     eq_(
         warning,
         'Operand "hey" bound as "foo" doesn\'t have a name in fr; '
         'using the global one')
     # Undoing it:
     logging_fixture.undo()
예제 #2
0
 def test_parsing_with_undefined_grammar_but_available_translations(self):
     """
     When an expression is written in an unsupported grammar, a parser
     based on the generic grammar must be created and used.
     
     The respective translated bindings must be used if available.
     
     """
     log_handler = LoggingHandlerFixture()
     mgr = EvaluableParseManager(self.symbol_table, Grammar())
     # Castilian grammar is not supported:
     parse_tree = mgr.parse(u"tráfico:peatones_cruzando_calle <= 3.0", "es")
     expected_tree = EvaluableParseTree(
         LessEqual(PedestriansCrossingRoad(), Number(3)))
     eq_(parse_tree, expected_tree)
     # Checking the log:
     info = "Generated parser for unknown grammar 'es'"
     ok_(info in log_handler.handler.messages['info'])
     log_handler.undo()
예제 #3
0
 def test_parsing_with_undefined_grammar_and_no_translated_bindings(self):
     """
     When an expression is written in an unsupported grammar, a parser
     based on the generic grammar must be created and used.
     
     If there are no translated bindings, the default names must be used.
     
     """
     log_handler = LoggingHandlerFixture()
     mgr = EvaluableParseManager(self.symbol_table, Grammar())
     # French grammar is not supported:
     parse_tree = mgr.parse("traffic:pedestrians_crossing_road <= 3.0",
                            "fr")
     expected_tree = EvaluableParseTree(
         LessEqual(PedestriansCrossingRoad(), Number(3)))
     eq_(parse_tree, expected_tree)
     # Checking the log:
     info = "Generated parser for unknown grammar 'fr'"
     ok_(info in log_handler.handler.messages['info'])
     log_handler.undo()