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