Merge branch 'BS-42'

This commit is contained in:
rzaitov 2013-11-13 19:30:27 +04:00
commit 00c5f0f03e
4 changed files with 53 additions and 17 deletions

View File

@ -7,9 +7,27 @@ class TestSettingsLineParser(unittest.TestCase):
def setUp(self):
self.parser = SettingsLineParser()
def test_getPathAndValue(self):
line = "abc.123.some_name = 'crazy value ±~ ../ 123'"
def test_whiteSpaces(self):
self.checkPathAndValue("abc.123.some_name = 'crazy value ±~ ../ 123'", 'abc.123.some_name', 'crazy value ±~ ../ 123')
self.checkPathAndValue("a.b.c = 'value'", 'a.b.c', 'value')
self.checkPathAndValue("a.b.c= 'value'", 'a.b.c', 'value')
self.checkPathAndValue("a.b.c ='value'", 'a.b.c', 'value')
self.checkPathAndValue("a.b.c='value'", 'a.b.c', 'value')
def test_valueWithoutComma(self):
self.checkPathAndValue("a.b.c = value", 'a.b.c', 'value')
self.checkPathAndValue("a.b.c = some value", 'a.b.c', 'some value')
self.checkPathAndValue("a.b.c = some value ", 'a.b.c', 'some value')
def test_valueWithEscapeComma(self):
self.checkPathAndValue("a.b.c = '\"value\"' ", 'a.b.c', '"value"')
self.checkPathAndValue('a.b.c = "\'value\'" ', 'a.b.c', "'value'")
self.checkPathAndValue('a.b.c = ""value"" ', 'a.b.c', 'value')
self.checkPathAndValue("a.b.c = ''value'' ", 'a.b.c', 'value')
def checkPathAndValue(self, line, expectedPath, expectedValue):
result = self.parser.splitToPathAndValue(line)
self.assertEqual('abc.123.some_name', result[0])
self.assertEqual('crazy value ±~ ../ 123', result[1])
self.assertEqual(expectedPath, result[0])
self.assertEqual(expectedValue, result[1])

View File

@ -8,7 +8,7 @@ from parsers.SettingsParser.SettingsParser import SettingsParser
class TestSettingsParser(unittest.TestCase):
def setUp(self):
self.preprocessor = NullPreprocessor()
self.parser = SettingsParser(self.preprocessor)
self.parser = SettingsParser(self.preprocessor, None)
def test_processLine(self):
line1 = "x.y.name1 = 'value1'"
@ -44,7 +44,7 @@ class TestSettingsParser(unittest.TestCase):
class PartialSettingsParser(SettingsParser):
def __init__(self, textPreprocessor):
SettingsParser.__init__(self, textPreprocessor)
SettingsParser.__init__(self, textPreprocessor, None)
self.processLineCall = 0
def processLine(self, line):

View File

@ -27,17 +27,35 @@ class SettingsLineParser(LineParser):
return result
def splitToPathAndValue(self, line):
# some.path = some_value
result = line.split('=')
propPathRegexp = r"^(?P<prop_path>[\w.]+)"
valueRegexp = "'(?P<value>.*)'"
propPath = self.getPropertyPath(result[0])
value = self.getValue(result[1])
regexpSource = propPathRegexp + r'\s*=\s*' + valueRegexp
regexp = re.compile(regexpSource, re.UNICODE)
return propPath, value
match = regexp.match(line)
self._guardMatch(match, line, regexpSource)
def getPropertyPath(self, rawPropertyPath):
assert rawPropertyPath is not None
stripped = rawPropertyPath.strip()
propPathRegexp = r"^(?P<prop_path>[\w.]+)$"
regexp = re.compile(propPathRegexp, re.UNICODE)
match = regexp.match(stripped)
self._guardMatch(match, stripped, propPathRegexp)
propPath = match.group('prop_path')
value = match.group('value')
return propPath
return propPath, value
def getValue(self, rawValue):
assert rawValue is not None
stripped = rawValue.strip()
old = stripped
stripped = stripped.strip("'")
if old == stripped:
stripped = stripped.strip('"')
return stripped

View File

@ -1,10 +1,10 @@
# global settings
build_tool = '/Applications/Xamarin\ Studio.app/Contents/MacOS/mdtool'
version = '0.0.0' # комментарий в тойже строке
build_tool='/Applications/Xamarin\ Studio.app/Contents/MacOS/mdtool'
version=0.0.0 # комментарий в тойже строке
configs = 'appstore, staging'
# ios platform settings
ios.sln_config = 'Release|iPhone'
ios.sln_config = Release|iPhone
ios.steps = 'scripts/IosSteps.txt'
ios.setup_steps = 'IosSetupSteps.txt'
ios.assembly_name = 'CoolApp'