github.com/SUSE/skuba@v1.4.17/ci/infra/testrunner/utils/test_config.py (about) 1 import os 2 from unittest import mock 3 from utils.config import BaseConfig 4 5 user = "USERID" 6 home = "/path/to/home" 7 workspace = "/path/to/workspace" 8 env_workspace = "/path/to/workspace/from/env" 9 skuba_binpath = "go/bin/skuba" 10 terraform_tfdir = "ci/infra" 11 ssh_key = ".ssh/id_rsa" 12 tfvars = "terraform.tfvars.json.ci.example" 13 14 empty_yaml = """ 15 """.format(workspace=workspace) 16 17 def test_defaults(): 18 """Test defaults according to the [documentation](../README.md) 19 """ 20 with mock.patch("builtins.open", mock.mock_open(read_data=empty_yaml)), \ 21 mock.patch.dict("os.environ", clear=True, 22 values={"WORKSPACE": workspace, 23 "HOME": home, 24 "USER": user 25 }): 26 config = BaseConfig("vars.yaml") 27 assert config.skuba.workdir == workspace 28 assert config.skuba.binpath == os.path.join(workspace,skuba_binpath) 29 assert config.skuba.cluster == "test-cluster" 30 assert config.terraform.tfdir == os.path.join(workspace,terraform_tfdir) 31 assert config.terraform.stack_name == user 32 assert config.terraform.workdir == workspace 33 assert config.terraform.tfvars == tfvars 34 assert config.terraform.plugin_dir == None 35 assert config.utils.ssh_key == os.path.join(home, ssh_key) 36 37 subs_yaml =""" 38 packages: 39 additional_pkgs: 40 - $MYPACKAGE 41 additional_repos: 42 my_repo: $MYREPO 43 """ 44 my_package = "my-repo" 45 my_repo = "http://url/to/my/repo" 46 47 def test_substitutions(): 48 """Test substitution of environment variables in lists and maps 49 """ 50 with mock.patch("builtins.open", mock.mock_open(read_data=subs_yaml)), \ 51 mock.patch.dict("os.environ", clear=True, 52 values={"MYPACKAGE": my_package, 53 "MYREPO": my_repo, 54 }): 55 config = BaseConfig("vars.yaml") 56 assert len(config.packages.additional_pkgs) == 1 57 assert config.packages.additional_pkgs[0] == my_package 58 assert config.packages.additional_repos["my_repo"] == my_repo