def test_transform_config(): config = {'redis': {'image': 'orchardup/redis'}, 'web': {'build': '.', 'links': ['redis'], 'volumes': ['.:/code'], '~dev': {'ports': ['5000:6000']}, '~prod': {'ports': ['5000:5000']}}} assert {'redis': {'image': 'orchardup/redis'}, 'web': {'build': '.', 'links': ['redis'], 'volumes': ['.:/code'], 'ports': ['5000:6000']}} == transform_config(config, env='dev') assert {'redis': {'image': 'orchardup/redis'}, 'web': {'build': '.', 'links': ['redis'], 'volumes': ['.:/code'], 'ports': ['5000:5000']}} == transform_config(config, env='prod')
def test_transform_config_root_level(): config = { 'foo': [123], '~1': { 'hoho': 'hoho' }, '~2': { 'baz': 'baz' } } assert { 'foo': [123], 'hoho': 'hoho' } == transform_config(config, env='1') assert { 'foo': [123], 'baz': 'baz' } == transform_config(config, env='2')
def test_transform_config_default(): config = { 'foo': [123], '~dev': { 'hoho': 'hoho' }, '~2': { 'baz': 'baz' } } assert { 'foo': [123] } == transform_config(config)
def _get_fig_project(self): if not self.env_name: raise ValueError('env is not specified!') if not self.project_dir: raise ValueError('project_dir is not specified!') if not self.project_name: raise ValueError('project_name is not specified!') os.chdir(self.project_dir) with open('ficloud.yml') as f: config = yaml.load(f) config = transform_config(config['services'], env=self.env_name) project = Project.from_config(self.project_name, config, self.client) return project