Подключил разрешение макросов в настройках

This commit is contained in:
rzaitov 2013-11-11 16:24:14 +04:00
parent df7e61b816
commit 635000b7fc
7 changed files with 90 additions and 8 deletions

View File

@ -0,0 +1,6 @@
class BuildConfigProviderBase:
def __init__(self):
pass
def getConfigs(self, rootConfig):
pass

View File

@ -0,0 +1,44 @@
from Core.ContentProviderBase import ContentProviderBase
from Tests.Common.SettingsProviderStub import SettingsProviderStub
from taskRunner import TaskRunner
from utils.BuildConfigProvider.BuildConfigProvider import BuildConfigProvider
from utils.BuildConfigProvider.ResolvedBuildConfigProvider import ResolvedBuildConfigProvider
settingsText = """
build_tool = '/Applications/Xamarin\ Studio.app/Contents/MacOS/mdtool'
major_minor = '1.2'
build = '345'
configs = 'config1, config2'
steps = 'main_steps'
config1.version = '{@major_minor}'
config2.version = '{@major_minor}.{@build}'
"""
stepsFileContent = """
sh echo {@version}
"""
class ContentProviderMock(ContentProviderBase):
def __init__(self):
ContentProviderBase.__init__(self)
def fetchContent(self, key):
if key == 'main_steps':
return stepsFileContent
else:
raise Exception(key)
settingsProvider = SettingsProviderStub(settingsText)
buildConfigProvider = BuildConfigProvider()
resolvedBuildConfigProvider = ResolvedBuildConfigProvider(buildConfigProvider)
contentProvider = ContentProviderMock()
taskRunner = TaskRunner(settingsProvider, contentProvider, resolvedBuildConfigProvider)
taskRunner.run()

View File

@ -20,5 +20,6 @@ os.chdir(baseDir)
#import ManualTests.clean_test
#import Tests.ManualTests.testflight_test
#import Tests.ManualTests.install_profile
#import Tests.ManualTests.macros_include_test
import Tests.ManualTests.macros_include_test
import Tests.ManualTests.resolve_settings

View File

@ -8,7 +8,8 @@ from Core.LineConveyor.MacroResolver import MacroResolver
from Core.LineConveyor.Stripper import Stripper
from Core.LineConveyor.TextInclude import TextInclude
from commands.ValueProvider import ValueProvider
from utils.BuildConfigProvider import BuildConfigProvider
from utils.BuildConfigProvider.BuildConfigProvider import BuildConfigProvider
from utils.BuildConfigProvider.ResolvedBuildConfigProvider import ResolvedBuildConfigProvider
from utils.IncludeProcessor import IncludeProcessor
from utils.MacroProcessor import MacroProcessor
from utils.SettingsProvider.CmdArgsOverriderSettingsProvider import CmdArgsOverriderSettingsProvider
@ -23,15 +24,15 @@ from Core.StepsRunner import StepsRunner
#os.chdir(baseDir)
class TaskRunner:
def __init__(self, settingsProvider, fileContentProvider):
def __init__(self, settingsProvider, fileContentProvider, buildConfigProvider):
assert settingsProvider is not None
assert fileContentProvider is not None
assert buildConfigProvider is not None
self.settingsProvider = settingsProvider
self.fileContentProvider = fileContentProvider
self.configsProvider = BuildConfigProvider()
self.configsProvider = buildConfigProvider
lineStripper = Stripper()
commentRemover = CommentRemover()
@ -84,8 +85,12 @@ if __name__ == "__main__":
# TODO: перенести в корень комапановки
fromFileSettingsProvider = FromFileSettingsProvider()
overrideWithCmdSetProvider = CmdArgsOverriderSettingsProvider(fromFileSettingsProvider, overrideArgs)
#resolvedSettingsProvider = ResolvedSettingsProvider(CmdArgsOverriderSettingsProvider)
fContentProvider = FileContentProvider()
runner = TaskRunner(overrideWithCmdSetProvider, fContentProvider)
buildConfigProvider = BuildConfigProvider()
resolvedBuildConfigProvider = ResolvedBuildConfigProvider(buildConfigProvider)
runner = TaskRunner(overrideWithCmdSetProvider, fContentProvider, resolvedBuildConfigProvider)
runner.run()

View File

@ -1,6 +1,9 @@
class BuildConfigProvider:
from Core.BuildConfigProviderBase import BuildConfigProviderBase
class BuildConfigProvider(BuildConfigProviderBase):
def __init__(self):
pass
BuildConfigProviderBase.__init__(self)
def getConfigs(self, rootConfig):
buildReadyConfigNames = self.fetchBuildReadyConfigNames(rootConfig)

View File

@ -0,0 +1,22 @@
from Core.BuildConfigProviderBase import BuildConfigProviderBase
from Core.DependencyResolver.SettingsResolver import SettingsResolver
class ResolvedBuildConfigProvider(BuildConfigProviderBase):
def __init__(self, buildConfigProvider):
BuildConfigProviderBase.__init__(self)
assert buildConfigProvider is not None
self.inner = buildConfigProvider
def getConfigs(self, rootConfig):
unresolvedBuildConfigs = self.inner.getConfigs(rootConfig)
resolvedBuildConfigs = []
for bc in unresolvedBuildConfigs:
resolver = SettingsResolver(bc)
resolvedBuildConfig = resolver.resolveSettings()
resolvedBuildConfigs.append(resolvedBuildConfig)
return resolvedBuildConfigs

View File

@ -0,0 +1 @@
__author__ = 'rzaitov'