From 792722176993dd746602e9f12de6b6d59a5e99bc Mon Sep 17 00:00:00 2001 From: rzaitov Date: Tue, 5 Nov 2013 11:02:34 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=20=D0=BF=D0=B0=D1=80=D1=81=D0=B5=D1=80=20?= =?UTF-8?q?=D0=BC=D0=B0=D0=BA=D1=80=D0=BE=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/Tests/UnitTests/Macro/__init__.py | 1 + scripts/Tests/UnitTests/Macro/test_macro.py | 17 ++++++++++++++ scripts/utils/Macro.py | 26 +++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 scripts/Tests/UnitTests/Macro/__init__.py create mode 100644 scripts/Tests/UnitTests/Macro/test_macro.py create mode 100644 scripts/utils/Macro.py diff --git a/scripts/Tests/UnitTests/Macro/__init__.py b/scripts/Tests/UnitTests/Macro/__init__.py new file mode 100644 index 0000000..cc31abc --- /dev/null +++ b/scripts/Tests/UnitTests/Macro/__init__.py @@ -0,0 +1 @@ +__author__ = 'rzaitov' diff --git a/scripts/Tests/UnitTests/Macro/test_macro.py b/scripts/Tests/UnitTests/Macro/test_macro.py new file mode 100644 index 0000000..18c496d --- /dev/null +++ b/scripts/Tests/UnitTests/Macro/test_macro.py @@ -0,0 +1,17 @@ +import unittest +from utils.Macro import Macro + + +class TestMacro(unittest.TestCase): + def setUp(self): + self.macroParser = Macro({}) + + def test_parseMacros(self): + line = 'hello {@this} is {@my_macro} and {@macro_with_numbers123}' + symbols = self.macroParser.getSymbols(line) + + self.assertEqual(3, len(symbols)) + self.assertTrue('this' in symbols) + self.assertTrue('my_macro' in symbols) + self.assertTrue('macro_with_numbers123' in symbols) + diff --git a/scripts/utils/Macro.py b/scripts/utils/Macro.py new file mode 100644 index 0000000..4279490 --- /dev/null +++ b/scripts/utils/Macro.py @@ -0,0 +1,26 @@ +import re + +class Macro: + def __init__(self, valueResolver): + assert valueResolver is not None + + self.__valueResolver = valueResolver + + def resolveLine(self, line): + assert line is not None + + symbols = self.getSymbols(line) + + def getSymbols(self, line): + assert line is not None + + symRegexp = r"{@(?P[\w]+)}" + regexp = re.compile(symRegexp) + + result = regexp.findall(line) + symbols = [] + if result is not None: + for r in result: + symbols.append(r) + + return symbols \ No newline at end of file