Ejemplo n.º 1
0
class ContextTest(TestCase):

    def setUp(self):
        self._data = {"Z": 1}
        self._environment = Context()
        for key, value in self._data.items():
            self._environment[key] = value

    def test_look_up_a_key_that_was_never_defined(self):
        self.assertIsNone(self._environment["never defined"])
        self.assertNotIn("never defined", self._environment)

    def test_definition(self):
        (key, value) = ("X", 234)
        self.assertNotIn("X", self._environment)
        self._environment[key] = value
        self.assertEqual(value, self._environment[key])

    def test_containment(self):
        for key, value in self._data.items():
            self.assertTrue(key in self._environment)
            self.assertEqual(value, self._environment[key])

    def test_fork_and_look_up_key_defined_in_the_parent(self):
        fork = self._environment.fork()
        for key, value in self._data.items():
            self.assertTrue(key in fork)
            self.assertEqual(value, fork[key])

    def test_fork_and_redefine_key(self):
        fork = self._environment.fork()
        fork["Z"] = 2
        self.assertEqual(2, fork["Z"])
        self.assertEqual(1, self._environment["Z"])
Ejemplo n.º 2
0
 def setUp(self):
     self._engine = MagicMock()
     self._macros = MacroFactory(self._engine)
     self._symbols = SymbolTable.default()
     self._tokens = TokenFactory(self._symbols)
     self._factory = Factory(self._symbols)
     self._environment = Context(definitions=self._macros.all())
Ejemplo n.º 3
0
 def _rewrite(self, text, source, symbol_table=None):
     character_table = symbol_table or self._character_table
     factory = Factory(character_table)
     macros = MacroFactory(self)
     parser = Parser(factory.as_tokens(text, source), factory,
                     Context(definitions=macros.all()))
     return parser.process()
Ejemplo n.º 4
0
 def setUp(self):
     self._data = {"Z": 1}
     self._environment = Context()
     for key, value in self._data.items():
         self._environment[key] = value
Ejemplo n.º 5
0
 def setUp(self):
     self._data = {"Z": 1}
     self._environment = Context()
     for key, value in self._data.items():
         self._environment[key] = value
Ejemplo n.º 6
0
 def _rewrite(self, text, source, symbol_table=SymbolTable.default()):
     factory = Factory(symbol_table)
     macros = MacroFactory(self)
     parser = Parser(factory.as_tokens(text, source), factory,
                     Context(definitions=macros.all()))
     return parser.rewrite()