コード例 #1
0
    def test_pre_process_resolve(self, yaml_fixtures):
        """Test that pre-process resolution only resolves specific vars."""
        raw_config = deepcopy(
            yaml_fixtures["config.runway.yml"]["deployments"])
        raw_vars = deepcopy(yaml_fixtures["config.runway.variables.yml"])
        deployment = DeploymentDefinition.from_list(raw_config)[0]
        raw_context = {"env_vars": os.environ.copy()}
        raw_context["env_vars"].update(ENV_VARS)
        deployment.resolve(
            MutableMap(**raw_context),
            variables=MutableMap(**raw_vars),
            pre_process=True,
        )

        # check resolved variables for pre_process
        assert deployment.account_id != 123456789101
        assert deployment.assume_role["arn"] == "arn:aws:iam::role/some-role"
        assert deployment.env_vars == {"MY_USERNAME": "******"}
        assert deployment.regions == ["us-east-1"]

        assert not deployment.parallel_regions, "not set in test config, should be None"

        # these should be unresolved at this point
        for attr in ["environments", "module_options"]:
            with pytest.raises(UnresolvedVariable):
                getattr(deployment, attr)
コード例 #2
0
    def test_env_vars_config_unresolved(
        self, fx_deployments, monkeypatch, runway_context
    ):
        """Test env_vars_config unresolved."""
        expected = {"key": "val"}

        monkeypatch.setattr(
            MODULE + ".merge_nested_environment_dicts", MagicMock(return_value=expected)
        )
        monkeypatch.setattr(
            Deployment, "_Deployment__merge_env_vars", MagicMock(return_value=None)
        )
        monkeypatch.setattr(
            DeploymentDefinition,
            "env_vars",
            PropertyMock(
                side_effect=[UnresolvedVariable("test", MagicMock()), expected]
            ),
        )
        monkeypatch.setattr(
            DeploymentDefinition, "_env_vars", PropertyMock(), raising=False
        )

        raw_deployment = fx_deployments.get("min_required")
        deployment = DeploymentDefinition.from_list([raw_deployment])[0]
        obj = Deployment(context=runway_context, definition=deployment)

        assert obj.env_vars_config == expected
        obj.definition._env_vars.resolve.assert_called_once()
コード例 #3
0
ファイル: test_config.py プロジェクト: voodooGQ/runway
    def test_from_list(self, yaml_fixtures):
        """Test init of a deployment from a list."""
        raw_config = deepcopy(yaml_fixtures['config.runway.yml']['deployments'])
        deployment = DeploymentDefinition.from_list(raw_config)[0]
        deployment_attrs = deployment.__dict__.keys()

        assert deployment.name == 'deployment_1'

        for attr in self.ATTRS:  # provides a better error than using all()
            assert attr in deployment_attrs
コード例 #4
0
ファイル: test_config.py プロジェクト: voodooGQ/runway
    def test_resolve(self, yaml_fixtures):
        """Test full resolution of variable attributes."""
        raw_config = deepcopy(yaml_fixtures['config.runway.yml']['deployments'])
        raw_vars = deepcopy(yaml_fixtures['config.runway.variables.yml'])
        deployment = DeploymentDefinition.from_list(raw_config)[0]
        raw_context = {'env_vars': os.environ.copy()}
        raw_context['env_vars'].update(ENV_VARS)
        deployment.resolve(MutableMap(**raw_context),
                           variables=MutableMap(**raw_vars))

        assert deployment.regions == ['us-east-1']
        assert not deployment.account_id == 123456789101
        assert deployment.assume_role['arn'] == 'arn:aws:iam::role/some-role'
        assert deployment.env_vars == {'MY_USERNAME': '******'}
        assert deployment.environments == {
            'test_param': 'lab value for ${envvar AWS_REGION}'
        }
        assert deployment.module_options == {
            'deployment_option': 'test.deployment.module_options'
        }
        assert deployment.regions == ['us-east-1']

        assert not deployment.parallel_regions, 'not set in test config, should be None'
コード例 #5
0
ファイル: test_config.py プロジェクト: voodooGQ/runway
    def test_pre_process_resolve(self, yaml_fixtures):
        """Test that pre-process resolution only resolves specific vars."""
        raw_config = deepcopy(yaml_fixtures['config.runway.yml']['deployments'])
        raw_vars = deepcopy(yaml_fixtures['config.runway.variables.yml'])
        deployment = DeploymentDefinition.from_list(raw_config)[0]
        raw_context = {'env_vars': os.environ.copy()}
        raw_context['env_vars'].update(ENV_VARS)
        deployment.resolve(MutableMap(**raw_context),
                           variables=MutableMap(**raw_vars),
                           pre_process=True)

        # check resolved variables for pre_process
        assert not deployment.account_id == 123456789101
        assert deployment.assume_role['arn'] == 'arn:aws:iam::role/some-role'
        assert deployment.env_vars == {'MY_USERNAME': '******'}
        assert deployment.regions == ['us-east-1']

        assert not deployment.parallel_regions, 'not set in test config, should be None'

        # these should be unresolved at this point
        for attr in ['environments', 'module_options']:
            with pytest.raises(UnresolvedVariable):
                getattr(deployment, attr)
コード例 #6
0
    def test_resolve(self, yaml_fixtures):
        """Test full resolution of variable attributes."""
        raw_config = deepcopy(
            yaml_fixtures["config.runway.yml"]["deployments"])
        raw_vars = deepcopy(yaml_fixtures["config.runway.variables.yml"])
        deployment = DeploymentDefinition.from_list(raw_config)[0]
        raw_context = {"env_vars": os.environ.copy()}
        raw_context["env_vars"].update(ENV_VARS)
        deployment.resolve(MutableMap(**raw_context),
                           variables=MutableMap(**raw_vars))

        assert deployment.regions == ["us-east-1"]
        assert deployment.account_id != 123456789101
        assert deployment.assume_role["arn"] == "arn:aws:iam::role/some-role"
        assert deployment.env_vars == {"MY_USERNAME": "******"}
        assert deployment.environments == {
            "test_param": "lab value for ${envvar AWS_REGION}"
        }
        assert deployment.module_options == {
            "deployment_option": "test.deployment.module_options"
        }
        assert deployment.regions == ["us-east-1"]

        assert not deployment.parallel_regions, "not set in test config, should be None"