добавил методы получения макроса по имени и получение имени по макросу

This commit is contained in:
rzaitov 2013-11-05 11:10:04 +04:00
parent 7927221769
commit fedf7b6241
2 changed files with 22 additions and 7 deletions

View File

@ -4,7 +4,7 @@ from utils.Macro import Macro
class TestMacro(unittest.TestCase):
def setUp(self):
self.macroParser = Macro({})
self.macroParser = Macro()
def test_parseMacros(self):
line = 'hello {@this} is {@my_macro} and {@macro_with_numbers123}'
@ -15,3 +15,14 @@ class TestMacro(unittest.TestCase):
self.assertTrue('my_macro' in symbols)
self.assertTrue('macro_with_numbers123' in symbols)
def test_getName(self):
line = '{@macro_name}'
name = self.macroParser.getMacroName(line)
self.assertEqual('macro_name', name)
def test_getMacro(self):
line = 'some_name'
macro = self.macroParser.getMacroByName(line)
self.assertEqual('{@some_name}', macro)

View File

@ -1,15 +1,19 @@
import re
class Macro:
def __init__(self, valueResolver):
assert valueResolver is not None
def __init__(self):
pass
self.__valueResolver = valueResolver
def getMacroByName(self, macroName):
assert macroName is not None
def resolveLine(self, line):
assert line is not None
return '{@' + macroName + '}'
symbols = self.getSymbols(line)
def getMacroName(self, macro):
assert macro.startswith('{@')
assert macro.endswith('}')
return macro[2:-1]
def getSymbols(self, line):
assert line is not None