diff --git a/scripts/UnitTests/SettingsParser/test_PathParser.py b/scripts/UnitTests/SettingsParser/test_PathParser.py new file mode 100644 index 0000000..46e678c --- /dev/null +++ b/scripts/UnitTests/SettingsParser/test_PathParser.py @@ -0,0 +1,16 @@ +import unittest +from parser.SettingsParser.PathParser import PathParser + + +class TestPathParser(unittest.TestCase): + def setUp(self): + self.parser = PathParser() + + def test_parseValidInput(self): + propertyPath = '123.abc.some_name' + segments = self.parser.parsePath(propertyPath) + + self.assertEqual(3, len(segments)) + self.assertEqual('123', segments[0]) + self.assertEqual('abc', segments[1]) + self.assertEqual('some_name', segments[2]) \ No newline at end of file diff --git a/scripts/parser/SettingsParser/PathParser.py b/scripts/parser/SettingsParser/PathParser.py new file mode 100644 index 0000000..fac8e87 --- /dev/null +++ b/scripts/parser/SettingsParser/PathParser.py @@ -0,0 +1,14 @@ +class PathParser: + def parsePath(self, line): + assert line is not None + + pathSegments = line.split('.') + self._guardPathSegments(pathSegments, line) + + return pathSegments + + def _guardPathSegments(self, pathSegments, sourceLine): + if '' in pathSegments: + raise Exception('invalid path given: {0}'.format(sourceLine)) + +