Exemple #1
0
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')
Exemple #2
0
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')
Exemple #3
0
def test_transform_config_default():
    config = {
        'foo': [123],
        '~dev': {
            'hoho': 'hoho'
        },
        '~2': {
            'baz': 'baz'
        }
    }

    assert {
        'foo': [123]
    } == transform_config(config)
Exemple #4
0
    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