def test_resolve_service_from_env(self, monkeypatch, service):
        monkeypatch.setenv(service.upper() + "_SERVICE_HOST", "host")
        monkeypatch.setenv(service.upper() + "_SERVICE_PORT", "1234")
        config = Configuration([])

        host, port = config.resolve_service(service)
        assert host == "host"
        assert port == 1234
    def test_has_service(self, monkeypatch, service_exists):
        service = "service"
        if service_exists:
            monkeypatch.setenv(service.upper() + "_SERVICE_HOST", "host")
            monkeypatch.setenv(service.upper() + "_SERVICE_PORT", "1234")
        config = Configuration([])

        assert service_exists == config.has_service(service)
    def test_resolve_service_from_dns(self, dns_resolver):
        dns_resolver.side_effect = None
        dns_resolver.return_value = dns.rdataset.from_text(
            'IN', 'SRV', 3600,
            '10 100 7794 kafka-pipeline.default.svc.cluster.local.')

        config = Configuration([])

        target, port = config.resolve_service('service', 'port')
        assert target == 'kafka-pipeline.default.svc.cluster.local'
        assert port == 7794
 def test_global_env_keyvalue(self):
     args = ("pattern=value", "FIAAS_ENV=test")
     config = Configuration(["--global-env=%s" % arg for arg in args])
     assert config.global_env == {
         KeyValue(arg).key: KeyValue(arg).value
         for arg in args
     }
    def test_resolve_namespace_env_should_be_used_if_unable_to_open_file(
            self, getenv):
        expected = "namespace-from-env"
        getenv.side_effect = lambda key: expected if key == "NAMESPACE" else None

        config = Configuration([])
        assert config.namespace == expected
Example #6
0
 def config(self):
     config = mock.create_autospec(Configuration([]), spec_set=True)
     config.ingress_suffixes = ["svc.test.example.com", "127.0.0.1.xip.io"]
     config.host_rewrite_rules = [
         HostRewriteRule("rewrite.example.com=test.rewrite.example.com"),
         HostRewriteRule(r"([a-z0-9](?:[-a-z0-9]*[a-z0-9])?).rewrite.example.com=test.\1.rewrite.example.com")
     ]
     return config
Example #7
0
 def test_datadog_global_tags_keyvalue(self):
     args = ("pattern=value", "FIAAS_DD_tag=test")
     config = Configuration(
         ["--datadog-global-tags=%s" % arg for arg in args])
     assert config.datadog_global_tags == {
         KeyValue(arg).key: KeyValue(arg).value
         for arg in args
     }
 def test_host_rewrite_rules(self):
     args = ("pattern=value", r"(\d+)\.\example\.com=$1.example.net",
             "www.([a-z]+.com)={env}.$1")
     config = Configuration(
         ["--host-rewrite-rule=%s" % arg for arg in args])
     assert config.host_rewrite_rules == [
         HostRewriteRule(arg) for arg in args
     ]
Example #9
0
 def test_tls_issuers(self):
     issuer_types = ["foo.bar.com=issuer", "woo.foo.bar.com=other"]
     args = [
         "--tls-certificate-issuer-type-overrides=%s" % issuer_type
         for issuer_type in issuer_types
     ]
     config = Configuration(args)
     assert config.tls_certificate_issuer_type_overrides == {
         "foo.bar.com": "issuer",
         "woo.foo.bar.com": "other"
     }
 def config(self, request, environment):
     infra, global_env, use_in_memory_emptydirs = request.param
     config = mock.create_autospec(Configuration([]), spec_set=True)
     config.infrastructure = infra
     config.environment = environment
     config.global_env = global_env
     config.pre_stop_delay = 1
     config.log_format = "json"
     config.use_in_memory_emptydirs = use_in_memory_emptydirs
     config.deployment_max_surge = u"25%"
     config.deployment_max_unavailable = 0
     yield config
 def config(self):
     config = mock.create_autospec(Configuration([]), spec_set=True)
     config.ingress_suffixes = ["svc.test.example.com", "127.0.0.1.xip.io"]
     config.host_rewrite_rules = [
         HostRewriteRule("rewrite.example.com=test.rewrite.example.com"),
         HostRewriteRule(
             r"([a-z0-9](?:[-a-z0-9]*[a-z0-9])?).rewrite.example.com=test.\1.rewrite.example.com"
         )
     ]
     config.tls_certificate_issuer_type_default = DEFAULT_TLS_ISSUER
     config.tls_certificate_issuer_type_overrides = {}
     return config
Example #12
0
    def test_default_parameter_values(self):
        config = Configuration([])

        assert not config.debug
        assert config.api_server == 'https://kubernetes.default.svc.cluster.local'
        assert config.api_token is None
        assert config.environment == ""
        assert config.infrastructure == "diy"
        assert config.log_format == "plain"
        assert config.image == ""
        assert config.enable_deprecated_multi_namespace_support is False
        assert config.enable_deprecated_tls_entry_per_host is False
 def test_host_rewrite_rules_from_file(self, tmpdir):
     args = ("pattern=value", r"(\d+)\.\example\.com=$1.example.net",
             "www.([a-z]+.com)={env}.$1")
     config_file = tmpdir.join("config.yaml")
     with config_file.open("w") as fobj:
         pyaml.dump({"host-rewrite-rule": args},
                    fobj,
                    safe=True,
                    default_style='"')
     config = Configuration(["--config-file", config_file.strpath])
     assert config.host_rewrite_rules == [
         HostRewriteRule(arg) for arg in args
     ]
 def test_behavior_for_undefined_flags_in_config_yml(self, tmpdir):
     config_flags = {
         "undefined_configuration_parameter": "a value",
         "debug": "true",
     }
     config_file = tmpdir.join("config.yaml")
     with config_file.open("w") as fobj:
         pyaml.dump(config_flags, fobj, safe=True, default_style='"')
     config = Configuration(["--config-file", config_file.strpath])
     # Defined configuration flags should be set
     assert config.debug is True
     # Undefined configuration flags should not be available
     with pytest.raises(AttributeError):
         config.undefined_configuration_parameter
    def test_log_format_param(self, format):
        config = Configuration(["--log-format", format])

        assert config.log_format == format
    def test_invalid_log_format_env(self, monkeypatch):
        monkeypatch.setenv("LOG_FORMAT", "fail")

        with pytest.raises(SystemExit):
            Configuration([])
    def test_resolve_log_format_env(self, monkeypatch, format):
        monkeypatch.setenv("LOG_FORMAT", format)
        config = Configuration([])

        assert config.log_format == format
 def test_resolve_namespace_raise_if_unable_to_open_file_and_no_env_var(
         self, getenv):
     getenv.return_value = None
     with pytest.raises(InvalidConfigurationException):
         Configuration([])
    def test_infrastructure_env(self, monkeypatch):
        monkeypatch.setenv("FIAAS_INFRASTRUCTURE", "gke")
        config = Configuration([])

        assert config.infrastructure == "gke"
    def test_infrastructure_param(self):
        config = Configuration(["--infrastructure", "gke"])

        assert config.infrastructure == "gke"
    def test_env(self, monkeypatch, env, key):
        monkeypatch.setenv(env, "value")
        config = Configuration([])

        assert getattr(config, key) == "value"
 def test_mutually_exclusive_lists(self):
     with pytest.raises(SystemExit):
         Configuration(
             ["--blacklist", "blacklisted", "--whitelist", "whitelisted"])
 def test_config_from_file(self, key, attr, value, tmpdir):
     config_file = tmpdir.join("config.yaml")
     with config_file.open("w") as fobj:
         pyaml.dump({key: value}, fobj, safe=True, default_style='"')
     config = Configuration(["--config-file", config_file.strpath])
     assert getattr(config, attr) == value
    def test_proxy(self, monkeypatch, cmdline, envvar, expected):
        if envvar:
            monkeypatch.setenv("http_proxy", envvar)
        config = Configuration(cmdline)

        assert config.proxy == expected
 def test_invalid_log_format_param(self):
     with pytest.raises(SystemExit):
         Configuration(["--log-format", "fail"])
 def test_resolve_namespace_file_should_take_precedence_over_env(self):
     config = Configuration([])
     assert config.namespace == "namespace-from-file"
    def test_parameters(self, arg, key):
        config = Configuration([arg, "value"])

        assert getattr(config, key) == "value"
 def k8s(self, service_deployer, deployment_deployer, ingress_deployer, autoscaler_deployer):
     config = mock.create_autospec(Configuration([]), spec_set=True)
     config.version = FIAAS_VERSION
     return K8s(config, service_deployer, deployment_deployer, ingress_deployer, autoscaler_deployer)
Example #29
0
 def config(self):
     return Configuration([])
 def test_flags(self, key):
     flag = "--{}".format(key.replace("_", "-"))
     config = Configuration([])
     assert getattr(config, key) is False
     config = Configuration([flag])
     assert getattr(config, key) is True