예제 #1
0
def test_defaults():
    t = VariableTracking()
    t.local_tracking = False
    t.global_tracking = False

    assert (not t.is_tracked("FOO"))

    t.local_tracking = True

    assert (t.is_tracked("FOO"))
예제 #2
0
def test_global():
    t = VariableTracking()
    t.ignore_global("FOO")
    assert (not t.is_explicitly_configured_local("FOO"))
    assert (t.is_explicitly_configured_global("FOO"))
    assert (not t.is_tracked("FOO"))

    t.unset_global("FOO")
    assert (not t.is_explicitly_configured_local("FOO"))
    assert (not t.is_explicitly_configured_global("FOO"))
    assert (t.is_tracked("FOO"))
예제 #3
0
def test_unset_not_set():
    t = VariableTracking()
    t.unset_local("FOO")
    t.unset_global("BAR")

    assert (t.is_tracked("FOO"))
    assert (t.is_tracked("BAR"))
예제 #4
0
def test_track_uses_config_file(tmp_json):
    cfg = ConfigurationFile(tmp_json, VariableTracking.config_schema_global)
    vtr = VariableTracking(cfg, None)

    vtr.ignore_global("FOO")
    assert (not vtr.is_tracked("FOO"))
    assert (not vtr.is_explicitly_configured_local("FOO"))
    assert (vtr.is_explicitly_configured_global("FOO"))

    cfg.save()

    cfg2 = ConfigurationFile(tmp_json, VariableTracking.config_schema_local)
    vtr2 = VariableTracking(None, cfg2)
    assert (not vtr2.is_tracked("FOO"))
    assert (vtr2.is_explicitly_configured_local("FOO"))
    assert (not vtr2.is_explicitly_configured_global("FOO"))
예제 #5
0
def test_overlay():
    t = VariableTracking()
    t.local_tracking = False

    t.track_local("LOCAL_TRACKED")
    t.ignore_global("GLOBAL_IGNORED")

    assert (t.is_tracked("DEFAULT", "LOCAL_TRACKED",
                         "GLOBAL_IGNORED") == [False, True, False])

    t.global_tracking = False

    t.ignore_local("LOCAL_IGNORED")
    t.track_global("GLOBAL_TRACKED")

    assert (t.is_tracked(
        "DEFAULT", "LOCAL_TRACKED", "LOCAL_IGNORED", "GLOBAL_TRACKED",
        "GLOBAL_IGNORED") == [False, True, False, True, False])
예제 #6
0
def test_empty_config():
    L = nullcontext(dict())
    G = nullcontext(dict())

    t = VariableTracking(L, G)

    assert (t.default_tracking is True)
    assert (t.local_tracking is None)
    assert (t.global_tracking is True)

    with pytest.raises(KeyError):
        assert (t.is_tracked("FOO"))

    t.global_tracking = False

    assert (t.default_tracking is False)

    with pytest.raises(KeyError):
        assert (not t.is_tracked("FOO"))

    with pytest.raises(KeyError):
        t.track_local("FOO")
예제 #7
0
def test_setup():
    t = VariableTracking()
    assert (t.is_tracked("FOO"))