コード例 #1
0
ファイル: test_deployment.py プロジェクト: onicagroup/runway
    def test_env_vars_config_unresolved(
        self,
        fx_deployments: YamlLoaderDeployment,
        mocker: MockerFixture,
        runway_context: MockRunwayContext,
    ) -> None:
        """Test env_vars_config unresolved."""
        expected = {"key": "val"}
        mocker.patch.object(Deployment, "_Deployment__merge_env_vars",
                            MagicMock(return_value=None))
        mocker.patch.object(
            RunwayDeploymentDefinition,
            "env_vars",
            PropertyMock(side_effect=[
                UnresolvedVariable(
                    Variable("test", "something", variable_type="runway"),
                    MagicMock(),
                ),
                expected,
            ]),
            create=True,
        )
        mocker.patch.object(RunwayDeploymentDefinition,
                            "_env_vars",
                            PropertyMock(),
                            create=True)

        raw_deployment: Dict[str,
                             Any] = cast(Dict[str, Any],
                                         fx_deployments.get("min_required"))
        deployment = RunwayDeploymentDefinition.parse_obj(raw_deployment)
        obj = Deployment(context=runway_context, definition=deployment)

        assert obj.env_vars_config == expected
        obj.definition._env_vars.resolve.assert_called_once()
コード例 #2
0
 def test_modules(self) -> None:
     """Test modules."""
     result = RunwayDeploymentDefinition.parse_obj(
         {"modules": ["test.cfn"], "regions": ["us-east-1"]}
     ).modules
     assert isinstance(result, list)
     assert len(result) == 1
     assert isinstance(result[0], RunwayModuleDefinition)
     assert result[0].name == "test.cfn"
コード例 #3
0
 def test_modules_setter(self) -> None:
     """Test modules.setter."""
     obj = RunwayDeploymentDefinition.parse_obj({"regions": ["us-east-1"]})
     new_modules = [
         RunwayModuleDefinition.parse_obj({"path": "./", "name": "test-01"}),
         RunwayModuleDefinition.parse_obj({"name": "test-02", "path": "./"}),
     ]
     obj.modules = new_modules
     assert obj._data.modules[0] == new_modules[0].data
     assert obj._data.modules[1] == new_modules[1].data
コード例 #4
0
    def test_parse_obj_list(self) -> None:
        """Test parse_obj list."""
        data: List[Dict[str, Any]] = [
            {"name": "test", "modules": [], "regions": ["us-east-1"]}
        ]
        result = RunwayDeploymentDefinition.parse_obj(data)

        assert isinstance(result, list)
        assert len(result) == 1
        assert result[0]._data.dict(exclude_unset=True) == data[0]
コード例 #5
0
 def test_modules_setter_not_list(self) -> None:
     """Test modules.setter not a list."""
     obj = RunwayDeploymentDefinition.parse_obj({"regions": ["us-east-1"]})
     with pytest.raises(TypeError):
         obj.modules = "invalid"  # type: ignore
     with pytest.raises(TypeError):
         obj.modules = {"key": "val"}  # type: ignore
     with pytest.raises(TypeError):
         obj.modules = None  # type: ignore
     with pytest.raises(TypeError):
         obj.modules = [  # type: ignore
             RunwayDeploymentDefinitionModel(name="test-01", regions=["us-east-1"])
         ]
コード例 #6
0
 def test_menu_entry(self, data: Dict[str, Any], expected: str) -> None:
     """Test menu_entry."""
     assert RunwayDeploymentDefinition.parse_obj(data).menu_entry == expected
コード例 #7
0
 def test_register_variable(self) -> None:
     """Test _register_variable."""
     obj = RunwayDeploymentDefinition.parse_obj(
         {"name": "test", "regions": ["us-east-1"]}
     )
     assert obj._vars["regions"].name == "test.regions"
コード例 #8
0
 def test_parse_obj(self) -> None:
     """Test parse_obj."""
     data: Dict[str, Any] = {"name": "test", "modules": [], "regions": ["us-east-1"]}
     obj = RunwayDeploymentDefinition.parse_obj(data)
     assert obj._data.dict(exclude_unset=True) == data
コード例 #9
0
 def test_models_setter_invalid_list_item(self) -> None:
     """Test modules.setter when list item is now supported."""
     with pytest.raises(TypeError):
         obj = RunwayDeploymentDefinition.parse_obj({"regions": ["us-east-1"]})
         obj.modules = [RunwayModuleDefinitionModel(path="./"), "invalid"]  # type: ignore