Merge branch 'BS-42'
This commit is contained in:
commit
00c5f0f03e
|
|
@ -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])
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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'
|
||||
|
|
|
|||
Loading…
Reference in New Issue