From a7d5c390bb70b147882ce81570abe44d0987aaff Mon Sep 17 00:00:00 2001 From: rzaitov Date: Fri, 8 Nov 2013 12:35:10 +0400 Subject: [PATCH 1/6] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BE=D1=81=D0=BF=D0=BE?= =?UTF-8?q?=D1=81=D0=BE=D0=B1=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/TouchinBuild/Tests/UnitTests/readme.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/TouchinBuild/Tests/UnitTests/readme.txt b/scripts/TouchinBuild/Tests/UnitTests/readme.txt index 8ee3a1e..034f363 100644 --- a/scripts/TouchinBuild/Tests/UnitTests/readme.txt +++ b/scripts/TouchinBuild/Tests/UnitTests/readme.txt @@ -1,3 +1,5 @@ +тесты нужно запускать из папки TouchinBuild + Запуск всех тестов python -m unittest discover -s Tests/UnitTests/ From 65bc13ac3b5bfa4a006d174c1ad2352023840b1d Mon Sep 17 00:00:00 2001 From: rzaitov Date: Fri, 8 Nov 2013 12:53:31 +0400 Subject: [PATCH 2/6] =?UTF-8?q?=D0=B8=D0=B7=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D1=81=D1=8F=20=D0=BE=D1=82=20=D0=BD=D0=B5=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D0=BC=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommandBuilders/PatchCsprojCommandBuilder.py | 4 ++-- .../CommandBuilders/PatchInfoplistCommandBuilder.py | 2 +- .../Tests/UnitTests/ProjectParser/test_projectParser.py | 3 +-- scripts/TouchinBuild/parsers/InsideParser/InsideSetParser.py | 5 +---- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/scripts/TouchinBuild/CommandBuilders/PatchCsprojCommandBuilder.py b/scripts/TouchinBuild/CommandBuilders/PatchCsprojCommandBuilder.py index 190f17e..fd728f0 100644 --- a/scripts/TouchinBuild/CommandBuilders/PatchCsprojCommandBuilder.py +++ b/scripts/TouchinBuild/CommandBuilders/PatchCsprojCommandBuilder.py @@ -13,7 +13,7 @@ class PatchCsprojCommandBuilder: def getCommandFor(self, line): assert line is not None - parser = InsideSetParser(self.__valueProvider, 'csproj') + parser = InsideSetParser('csproj') result = parser.parseLine(line) csprojPath = result[0] @@ -28,7 +28,7 @@ class PatchCsprojCommandBuilder: def isPatchCsproj(self, line): assert line is not None - parser = InsideSetParser(self.__valueProvider, 'csproj') + parser = InsideSetParser('csproj') isValid = parser.isValidLine(line) return isValid diff --git a/scripts/TouchinBuild/CommandBuilders/PatchInfoplistCommandBuilder.py b/scripts/TouchinBuild/CommandBuilders/PatchInfoplistCommandBuilder.py index 75af291..7c56d72 100644 --- a/scripts/TouchinBuild/CommandBuilders/PatchInfoplistCommandBuilder.py +++ b/scripts/TouchinBuild/CommandBuilders/PatchInfoplistCommandBuilder.py @@ -28,6 +28,6 @@ class PatchInfoplistCommandBuilder: return command def __createParser(self): - parser = InsideSetParser(self.__valueProvider, 'plist') + parser = InsideSetParser('plist') return parser diff --git a/scripts/TouchinBuild/Tests/UnitTests/ProjectParser/test_projectParser.py b/scripts/TouchinBuild/Tests/UnitTests/ProjectParser/test_projectParser.py index 9456623..6253692 100644 --- a/scripts/TouchinBuild/Tests/UnitTests/ProjectParser/test_projectParser.py +++ b/scripts/TouchinBuild/Tests/UnitTests/ProjectParser/test_projectParser.py @@ -7,8 +7,7 @@ from parsers.InsideParser.InsideSetParser import InsideSetParser class TestCsprojParser(unittest.TestCase): def setUp(self): - value_provider = ValueProvider() - self.parser = InsideSetParser(value_provider, 'csproj') + self.parser = InsideSetParser('csproj') def test_isValid(self): diff --git a/scripts/TouchinBuild/parsers/InsideParser/InsideSetParser.py b/scripts/TouchinBuild/parsers/InsideParser/InsideSetParser.py index cef95f6..6156d27 100644 --- a/scripts/TouchinBuild/parsers/InsideParser/InsideSetParser.py +++ b/scripts/TouchinBuild/parsers/InsideParser/InsideSetParser.py @@ -4,11 +4,8 @@ from parsers.LineParser import LineParser class InsideSetParser(LineParser): - def __init__(self, value_provider, fileExt): + def __init__(self, fileExt): LineParser.__init__(self) - assert value_provider is not None - - self.__value_provider = value_provider self.__extension = fileExt def parseLine(self, line): From 22d3abd8179e85d5646881e879a370c21d1ab53a Mon Sep 17 00:00:00 2001 From: rzaitov Date: Fri, 8 Nov 2013 12:54:21 +0400 Subject: [PATCH 3/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BF=D0=B0=D1=80=D1=81=D0=B5=D1=80=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20=D0=BF=D0=B0=D1=82?= =?UTF-8?q?=D1=87=D0=B8=D0=BD=D0=B3=D0=B0=20csproj=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InsideParser/InsideCsprojSetParser.py | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 scripts/TouchinBuild/parsers/InsideParser/InsideCsprojSetParser.py diff --git a/scripts/TouchinBuild/parsers/InsideParser/InsideCsprojSetParser.py b/scripts/TouchinBuild/parsers/InsideParser/InsideCsprojSetParser.py new file mode 100644 index 0000000..9357698 --- /dev/null +++ b/scripts/TouchinBuild/parsers/InsideParser/InsideCsprojSetParser.py @@ -0,0 +1,48 @@ +import re + +from parsers.LineParser import LineParser + + +class InsideCsprojSetParser(LineParser): + def __init__(self, fileExt): + LineParser.__init__(self) + + self.__extension = fileExt + + def parseLine(self, line): + assert line is not None + + matchInfo = self.getMatchInfo(line) + match = matchInfo[0] + regexpSource = matchInfo[1] + self._guardMatch(match, line, regexpSource) + + filePath = match.group('file') + key = match.group('key') + value = match.group('value') + slnConfig = match.group('config') + + return filePath, key, value, slnConfig + + def getMatchInfo(self, line): + assert line is not None + + filePathRegexp = r"'(?P[./ a-zA-Z]+\.{0})'".format(self.__extension) + keyRegexp = r'(?P[a-zA-Z]+)' + valueRegexp = r"'(?P[^']+)'" + slnConfigRegexp = r"'(?P[a-zA-Z|]+)'$" + + regexpSource = self.startsWith('inside') + filePathRegexp + self.keywordToken('set') + keyRegexp + \ + self.keywordToken('to') + valueRegexp + self.than('for') + slnConfigRegexp + regexp = re.compile(regexpSource, re.UNICODE) + + match = regexp.match(line) + return match, regexpSource + + def isValidLine(self, line): + assert line is not None + + matchInfo = self.getMatchInfo(line) + match = matchInfo[0] + + return match is not None \ No newline at end of file From ced2f2f3642d3035e1785ad9ac865e7488bfb72c Mon Sep 17 00:00:00 2001 From: rzaitov Date: Fri, 8 Nov 2013 13:10:20 +0400 Subject: [PATCH 4/6] =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B8=D1=84=D0=B8=D1=86?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D0=BF=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=20=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=B0=D1=82=D1=87=D0=B8=D0=BD=D0=B3=D0=B0=20csproj=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PatchCsprojCommandBuilder.py | 21 ++++++++----------- scripts/TouchinBuild/Core/StepsRunner.py | 2 +- .../Tests/ManualTests/csproj_test.py | 7 ++----- .../ProjectParser/test_projectParser.py | 12 +++++------ .../InsideParser/InsideCsprojSetParser.py | 2 +- 5 files changed, 19 insertions(+), 25 deletions(-) diff --git a/scripts/TouchinBuild/CommandBuilders/PatchCsprojCommandBuilder.py b/scripts/TouchinBuild/CommandBuilders/PatchCsprojCommandBuilder.py index fd728f0..5c04b90 100644 --- a/scripts/TouchinBuild/CommandBuilders/PatchCsprojCommandBuilder.py +++ b/scripts/TouchinBuild/CommandBuilders/PatchCsprojCommandBuilder.py @@ -1,26 +1,21 @@ from commands.PatchCsprojCommand import PatchCsprojCommand -from parsers.InsideParser.InsideSetParser import InsideSetParser +from parsers.InsideParser.InsideCsprojSetParser import InsideCsprojSetParser class PatchCsprojCommandBuilder: - def __init__(self, config, valueProvider): - assert config is not None - assert valueProvider is not None - - self.__config = config - self.__valueProvider = valueProvider + def __init__(self): + pass def getCommandFor(self, line): assert line is not None - parser = InsideSetParser('csproj') + parser = self.getParser() result = parser.parseLine(line) csprojPath = result[0] key = result[1] - value = self.__valueProvider.getValueFor(result[2]) - - slnConfig = self.__config['sln_config'] + value = result[2] + slnConfig = result[3] command = PatchCsprojCommand(csprojPath, key, value, slnConfig) return command @@ -28,8 +23,10 @@ class PatchCsprojCommandBuilder: def isPatchCsproj(self, line): assert line is not None - parser = InsideSetParser('csproj') + parser = self.getParser() isValid = parser.isValidLine(line) return isValid + def getParser(self): + return InsideCsprojSetParser('csproj') \ No newline at end of file diff --git a/scripts/TouchinBuild/Core/StepsRunner.py b/scripts/TouchinBuild/Core/StepsRunner.py index d115eef..4883959 100644 --- a/scripts/TouchinBuild/Core/StepsRunner.py +++ b/scripts/TouchinBuild/Core/StepsRunner.py @@ -27,7 +27,7 @@ class StepsRunner: self.restoreFromBackupBuilder = RestoreBackupCommandBuilder() self.deleteBackupBuilder = DeleteBackupCommandBuilder() self.createDirs = MakeDirsCommandBuilder() - self.patchCsproj = PatchCsprojCommandBuilder(config, self.valueProvider) + self.patchCsproj = PatchCsprojCommandBuilder() self.patchInfoPlist = PatchInfoplistCommandBuilder(self.valueProvider) self.copyBuilder = CopyCommandBuilder() self.testflightBuilder = TestflightCommandBuilder() diff --git a/scripts/TouchinBuild/Tests/ManualTests/csproj_test.py b/scripts/TouchinBuild/Tests/ManualTests/csproj_test.py index c307d0a..6e5a94d 100644 --- a/scripts/TouchinBuild/Tests/ManualTests/csproj_test.py +++ b/scripts/TouchinBuild/Tests/ManualTests/csproj_test.py @@ -1,11 +1,8 @@ from CommandBuilders.PatchCsprojCommandBuilder import PatchCsprojCommandBuilder from commands.ValueProvider import ValueProvider -config = {'sln_config' : 'Release|iPhone'} -line = "inside 'BuildSample/BuildSample/CoolApp.csproj' set OutputPath to 'Output'" +line = "inside 'BuildSample/BuildSample/CoolApp.csproj' set OutputPath to 'Output' for 'Release|iPhone'" -value_provider = ValueProvider(config) - -builder = PatchCsprojCommandBuilder(config, value_provider) +builder = PatchCsprojCommandBuilder() command = builder.getCommandFor(line) command.execute() \ No newline at end of file diff --git a/scripts/TouchinBuild/Tests/UnitTests/ProjectParser/test_projectParser.py b/scripts/TouchinBuild/Tests/UnitTests/ProjectParser/test_projectParser.py index 6253692..c6b9a07 100644 --- a/scripts/TouchinBuild/Tests/UnitTests/ProjectParser/test_projectParser.py +++ b/scripts/TouchinBuild/Tests/UnitTests/ProjectParser/test_projectParser.py @@ -1,17 +1,16 @@ # -*- coding: utf-8 -*- import unittest -from commands.ValueProvider import ValueProvider -from parsers.InsideParser.InsideSetParser import InsideSetParser +from parsers.InsideParser.InsideCsprojSetParser import InsideCsprojSetParser class TestCsprojParser(unittest.TestCase): def setUp(self): - self.parser = InsideSetParser('csproj') + self.parser = InsideCsprojSetParser('csproj') def test_isValid(self): - line = "inside 'CoolApp.csproj' set KEY to 'VALUE'" + line = "inside 'CoolApp.csproj' set KEY to 'VALUE' for 'Sln|Config'" isValid = self.parser.isValidLine(line) self.assertEqual(True, isValid) @@ -23,9 +22,10 @@ class TestCsprojParser(unittest.TestCase): self.assertEqual(False, isValid) def test_parse(self): - line = "inside 'Dir/../Some Folder/CoolApp.csproj' set OutputPath to 'Output'" + line = "inside 'Dir/../Some Folder/CoolApp.csproj' set OutputPath to 'Output' for 'Release|iPhone'" result = self.parser.parseLine(line) self.assertEqual('Dir/../Some Folder/CoolApp.csproj', result[0]) self.assertEqual('OutputPath', result[1]) - self.assertEqual('Output', result[2]) \ No newline at end of file + self.assertEqual('Output', result[2]) + self.assertEqual('Release|iPhone', result[3]) \ No newline at end of file diff --git a/scripts/TouchinBuild/parsers/InsideParser/InsideCsprojSetParser.py b/scripts/TouchinBuild/parsers/InsideParser/InsideCsprojSetParser.py index 9357698..2dcf2e9 100644 --- a/scripts/TouchinBuild/parsers/InsideParser/InsideCsprojSetParser.py +++ b/scripts/TouchinBuild/parsers/InsideParser/InsideCsprojSetParser.py @@ -33,7 +33,7 @@ class InsideCsprojSetParser(LineParser): slnConfigRegexp = r"'(?P[a-zA-Z|]+)'$" regexpSource = self.startsWith('inside') + filePathRegexp + self.keywordToken('set') + keyRegexp + \ - self.keywordToken('to') + valueRegexp + self.than('for') + slnConfigRegexp + self.keywordToken('to') + valueRegexp + self.keywordToken('for') + slnConfigRegexp regexp = re.compile(regexpSource, re.UNICODE) match = regexp.match(line) From 5d099a151a31e6349d665ef9b563ee8634f9eeb1 Mon Sep 17 00:00:00 2001 From: rzaitov Date: Fri, 8 Nov 2013 13:11:38 +0400 Subject: [PATCH 5/6] =?UTF-8?q?=D0=9E=D1=82=D1=80=D0=B5=D1=84=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=BB=20InsideSetParser,=20=D1=87?= =?UTF-8?q?=D1=82=D0=BE=D0=B1=D1=8B=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20isV?= =?UTF-8?q?alid=20=D0=BF=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D1=81=D1=82=D1=80=D0=BE=D0=B8=D0=BB=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B3=D1=83=D0=BB=D1=8F=D1=80=D0=BD=D0=BE=D0=B5=20=D0=B2?= =?UTF-8?q?=D1=8B=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parsers/InsideParser/InsideSetParser.py | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/scripts/TouchinBuild/parsers/InsideParser/InsideSetParser.py b/scripts/TouchinBuild/parsers/InsideParser/InsideSetParser.py index 6156d27..7269940 100644 --- a/scripts/TouchinBuild/parsers/InsideParser/InsideSetParser.py +++ b/scripts/TouchinBuild/parsers/InsideParser/InsideSetParser.py @@ -11,14 +11,9 @@ class InsideSetParser(LineParser): def parseLine(self, line): assert line is not None - filePathRegexp = r"'(?P[./ a-zA-Z]+\.{0})'".format(self.__extension) - keyRegexp = r'(?P[a-zA-Z]+)' - valueRegexp = r"'(?P[^']+)'" - - regexpSource = self.startsWith('inside') + filePathRegexp + self.keywordToken('set') + keyRegexp + self.keywordToken('to') + valueRegexp - regexp = re.compile(regexpSource, re.UNICODE) - - match = regexp.match(line) + matchInfo = self.getMatchInfo(line) + match = matchInfo[0] + regexpSource = matchInfo[1] self._guardMatch(match, line, regexpSource) filePath = match.group('file') @@ -27,9 +22,24 @@ class InsideSetParser(LineParser): return filePath, key, value - def isValidLine(self, line): - regexpSrc = r"inside\s+'[./ a-zA-Z]+\.{0}'\s+set".format(self.__extension) - regexp = re.compile(regexpSrc, re.UNICODE) + def getMatchInfo(self, line): + assert line is not None + + filePathRegexp = r"'(?P[./ a-zA-Z]+\.{0})'".format(self.__extension) + keyRegexp = r'(?P[a-zA-Z]+)' + valueRegexp = r"'(?P[^']+)'$" + + regexpSource = self.startsWith('inside') + filePathRegexp + self.keywordToken('set') + keyRegexp + \ + self.keywordToken('to') + valueRegexp + regexp = re.compile(regexpSource, re.UNICODE) match = regexp.match(line) + + return match, regexpSource + + def isValidLine(self, line): + assert line is not None + + matchInfo = self.getMatchInfo(line) + match = matchInfo[0] return match is not None \ No newline at end of file From de6042379d8e72d67b731fd90729a07abc00d8dd Mon Sep 17 00:00:00 2001 From: rzaitov Date: Fri, 8 Nov 2013 13:14:49 +0400 Subject: [PATCH 6/6] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BE=D1=81=D0=BF=D0=BE?= =?UTF-8?q?=D1=81=D0=BE=D0=B1=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20=D0=BF=D0=B0=D1=82=D1=87?= =?UTF-8?q?=D0=B8=D0=BD=D0=B3=D0=B0=20csproj=20=D1=84=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BuildSample/BuildSample/CoolApp.csproj | 2 +- scripts/IosSetupSteps.txt | 2 +- scripts/MANIFEST | 1 + scripts/TouchinBuild/run_manual_tests.py | 7 +++---- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/BuildSample/BuildSample/CoolApp.csproj b/BuildSample/BuildSample/CoolApp.csproj index cca0400..1a17219 100644 --- a/BuildSample/BuildSample/CoolApp.csproj +++ b/BuildSample/BuildSample/CoolApp.csproj @@ -53,7 +53,7 @@ full true - bin\iPhone\Release + Output prompt 4 iPhone Developer: Рустам Заитов (CTL85FZX6K) diff --git a/scripts/IosSetupSteps.txt b/scripts/IosSetupSteps.txt index faf4972..66b0c12 100644 --- a/scripts/IosSetupSteps.txt +++ b/scripts/IosSetupSteps.txt @@ -3,7 +3,7 @@ create backup for 'BuildSample' inside 'BuildSample/BuildSample.sln' remove NotCompileApp project -inside 'BuildSample/BuildSample/CoolApp.csproj' set OutputPath to 'Output' +inside 'BuildSample/BuildSample/CoolApp.csproj' set OutputPath to 'Output' for '{@sln_config}' inside 'BuildSample/BuildSample/Info.plist' set CFBundleVersion to '{@version}' inside 'BuildSample/BuildSample/Info.plist' set CFBundleDisplayName to 'CoolApp' diff --git a/scripts/MANIFEST b/scripts/MANIFEST index 494e951..7a23ba5 100644 --- a/scripts/MANIFEST +++ b/scripts/MANIFEST @@ -51,6 +51,7 @@ TouchinBuild/parsers/__init__.py TouchinBuild/parsers/CopyParser/CopyArguments.py TouchinBuild/parsers/CopyParser/CopyLineParser.py TouchinBuild/parsers/CopyParser/__init__.py +TouchinBuild/parsers/InsideParser/InsideCsprojSetParser.py TouchinBuild/parsers/InsideParser/InsideRemoveParser.py TouchinBuild/parsers/InsideParser/InsideSetParser.py TouchinBuild/parsers/InsideParser/__init__.py diff --git a/scripts/TouchinBuild/run_manual_tests.py b/scripts/TouchinBuild/run_manual_tests.py index 48d8410..3e21544 100644 --- a/scripts/TouchinBuild/run_manual_tests.py +++ b/scripts/TouchinBuild/run_manual_tests.py @@ -2,11 +2,11 @@ import os scriptFilePath = os.path.abspath(__file__) scriptDir = os.path.dirname(scriptFilePath) -baseDir = os.path.join(scriptDir, os.pardir) +baseDir = os.path.join(scriptDir, os.pardir, os.pardir) os.chdir(baseDir) -#import ManualTests.csproj_test +import Tests.ManualTests.csproj_test #import ManualTests.info_plist_test #import ManualTests.copy_test #import ManualTests.create_backup_test @@ -19,5 +19,4 @@ os.chdir(baseDir) #import ManualTests.infoplist_test #import ManualTests.clean_test #import Tests.ManualTests.testflight_test - -import Tests.ManualTests.install_profile +#import Tests.ManualTests.install_profile