Example #1
0
def test_get_undefined_config_value_null_layer_removed():
    # For coverage
    config = ScoutConfig()
    config.layers = [x for x in config.layers if not isinstance(x, Null)]

    with pytest.raises(ValueError) as excinfo:
        config.value("unknown value")

    assert isinstance(excinfo.value, ValueError)
    if sys.version_info[0] == 2:
        expected_msg = "key u'unknown value' not found in any layer"
    else:
        expected_msg = "key 'unknown value' not found in any layer"
    assert excinfo.value.args == (expected_msg, )
Example #2
0
def test_list_conversion_from_env():
    os.environ["SCOUT_DISABLED_INSTRUMENTS"] = "pymongo, redis"
    config = ScoutConfig()
    try:
        assert config.value("disabled_instruments") == ["pymongo", "redis"]
    finally:
        del os.environ["SCOUT_DISABLED_INSTRUMENTS"]
Example #3
0
def test_boolean_conversion_from_python(original, converted):
    ScoutConfig.set(monitor=original)
    config = ScoutConfig()
    try:
        assert config.value("monitor") is converted
    finally:
        ScoutConfig.reset_all()
Example #4
0
def test_float_conversion_from_python(original, converted):
    ScoutConfig.set(shutdown_timeout_seconds=original)
    config = ScoutConfig()
    try:
        assert config.value("shutdown_timeout_seconds") == converted
    finally:
        ScoutConfig.reset_all()
Example #5
0
def test_list_conversion_from_python(original, converted):
    ScoutConfig.set(disabled_instruments=original)
    config = ScoutConfig()
    try:
        assert config.value("disabled_instruments") == converted
    finally:
        ScoutConfig.reset_all()
Example #6
0
def test_get_config_value_from_python():
    ScoutConfig.set(socket_path="/set/from/python")
    config = ScoutConfig()
    try:
        assert config.value("socket_path") == "/set/from/python"
    finally:
        ScoutConfig.reset_all()
Example #7
0
def test_get_config_value_from_env():
    os.environ["SCOUT_SOCKET_PATH"] = "/set/in/env"
    config = ScoutConfig()
    try:
        assert config.value("socket_path") == "/set/in/env"
    finally:
        del os.environ["SCOUT_SOCKET_PATH"]
Example #8
0
def test_boolean_conversion_from_env():
    os.environ["SCOUT_MONITOR"] = "True"
    config = ScoutConfig()
    try:
        assert config.value("monitor") is True
    finally:
        del os.environ["SCOUT_MONITOR"]
Example #9
0
def test_env_outranks_python():
    os.environ["SCOUT_SOCKET_PATH"] = "/set/in/env"
    ScoutConfig.set(socket_path="/set/from/python")
    config = ScoutConfig()
    try:
        assert config.value("socket_path") == "/set/in/env"
    finally:
        del os.environ["SCOUT_SOCKET_PATH"]
        ScoutConfig.reset_all()
Example #10
0
def test_override_triple():
    ScoutConfig.set(core_agent_triple="unknown-linux-musl")
    config = ScoutConfig()
    try:
        assert re.match(
            r"scout_apm_core-v.*-unknown-linux-musl",
            config.value("core_agent_full_name"),
        )
    finally:
        ScoutConfig.reset_all()
Example #11
0
def test_override_triple(caplog):
    triple = "unknown-unknown-linux-musl"
    ScoutConfig.set(core_agent_triple=triple)
    config = ScoutConfig()
    try:
        full_name = config.value("core_agent_full_name")
    finally:
        ScoutConfig.reset_all()

    assert full_name.endswith(triple)
    assert caplog.record_tuples == []
Example #12
0
def test_override_triple_invalid(recwarn):
    bad_triple = "badtriple"
    ScoutConfig.set(core_agent_triple=bad_triple)
    config = ScoutConfig()
    try:
        full_name = config.value("core_agent_full_name")
    finally:
        ScoutConfig.reset_all()

    assert full_name.endswith(bad_triple)
    assert len(recwarn) == 1
    warning = recwarn.pop(Warning)
    assert str(warning.message) == "Invalid value for core_agent_triple: badtriple"
Example #13
0
def test_get_derived_config_value():
    ScoutConfig.set(core_agent_version="v1.1.8")
    config = ScoutConfig()
    try:
        assert re.match(
            r"/tmp/scout_apm_core/scout_apm_core"
            r"-v1\.1\.8"
            r"-(x86_64|i686|unknown)"
            r"-(unknown-linux-gnu|apple-darwin|unknown)"
            r"/core-agent\.sock",
            config.value("socket_path"),
        )
    finally:
        ScoutConfig.reset_all()
Example #14
0
def test_override_triple_invalid(caplog):
    bad_triple = "badtriple"
    ScoutConfig.set(core_agent_triple=bad_triple)
    config = ScoutConfig()
    try:
        full_name = config.value("core_agent_full_name")
    finally:
        ScoutConfig.reset_all()

    assert full_name.endswith(bad_triple)
    assert caplog.record_tuples == [(
        "scout_apm.core.config",
        logging.WARNING,
        "Invalid value for core_agent_triple: badtriple",
    )]
Example #15
0
def test_get_undefined_config_value():
    config = ScoutConfig()
    assert config.value("unknown value") is None
Example #16
0
def test_get_default_config_value():
    config = ScoutConfig()
    assert config.value("core_agent_dir") == "/tmp/scout_apm_core"
Example #17
0
def test_boolean_conversion_from_env():
    config = ScoutConfig()
    with mock.patch.dict(os.environ, {"SCOUT_MONITOR": "True"}):
        assert config.value("monitor") is True
Example #18
0
def test_float_conversion_from_env():
    config = ScoutConfig()
    with mock.patch.dict(os.environ, {"SCOUT_SHUTDOWN_TIMEOUT_SECONDS": "0"}):
        value = config.value("shutdown_timeout_seconds")
    assert isinstance(value, float)
    assert value == 0.0
Example #19
0
def test_list_conversion_from_env():
    config = ScoutConfig()
    with mock.patch.dict(os.environ,
                         {"SCOUT_DISABLED_INSTRUMENTS": "pymongo, redis"}):
        assert config.value("disabled_instruments") == ["pymongo", "redis"]