示例#1
0
def test_prio_context_over_ignore():
    s = Settings()
    s.update(project="pizza", _source=s.Source.ENTITY, _override=True)
    assert s.project == "pizza"
    with s._as_source(s.Source.PROJECT, override=True) as s2:
        s2.project = "pizza2"
    assert s.project == "pizza"
示例#2
0
def test_prio_context_ok():
    s = Settings()
    s.update(project="pizza", _source=s.Source.ENTITY)
    assert s.project == "pizza"
    with s._as_source(s.Source.PROJECT) as s2:
        s2.project = "pizza2"
    assert s.project == "pizza2"
示例#3
0
def test_ignore_globs_settings(local_settings):
    with open(os.path.join(os.getcwd(), ".config", "wandb", "settings"),
              "w") as f:
        f.write("""[default]
ignore_globs=foo,bar""")
    s = Settings(_files=True)
    s.setdefaults()
    assert s.ignore_globs == ["foo", "bar"]
示例#4
0
def test_preprocess_base_url():
    s = Settings()
    s.update(base_url="http://host.com")
    assert s.base_url == "http://host.com"
    s.update(base_url="http://host.com/")
    assert s.base_url == "http://host.com"
    s.update(base_url="http://host.com///")
    assert s.base_url == "http://host.com"
    s.update(base_url="//http://host.com//")
    assert s.base_url == "//http://host.com"
示例#5
0
 def __init__(self, spec):
     self._spec = spec
     glob_config = os.path.expanduser('~/.config/wandb/settings')
     loc_config = 'wandb/settings'
     files = (glob_config, loc_config)
     settings = Settings(environ=os.environ, files=files)
     self._api = internal.Api(default_settings=settings)
     self._settings = settings
示例#6
0
 def __init__(self, spec):
     self._spec = spec
     # glob_config = os.path.expanduser('~/.config/wandb/settings')
     # loc_config = 'wandb/settings'
     # files = (glob_config, loc_config)
     settings = Settings()
     self._api = internal_runqueue.Api()
     self._settings = settings
示例#7
0
def test_freeze():
    s = Settings()
    s.project = "goodprojo"
    assert s.project == "goodprojo"
    s.freeze()
    with pytest.raises(TypeError):
        s.project = "badprojo"
    assert s.project == "goodprojo"
    with pytest.raises(TypeError):
        s.update(project="badprojo2")
    assert s.project == "goodprojo"
    c = copy.copy(s)
    assert c.project == "goodprojo"
    c.project = "changed"
    assert c.project == "changed"
示例#8
0
def test_ignore_globs_env():
    s = Settings()
    s._apply_environ({"WANDB_IGNORE_GLOBS": "foo,bar"})
    s.setdefaults()
    assert s.ignore_globs == (
        "foo",
        "bar",
    )
示例#9
0
def test_copy():
    s = Settings()
    s.update(base_url="changed")
    s2 = copy.copy(s)
    assert s2.base_url == "changed"
    s.update(base_url="notchanged")
    assert s.base_url == "notchanged"
    assert s2.base_url == "changed"
示例#10
0
def test_invalid_both():
    s = Settings()
    with pytest.raises(KeyError):
        s.update(dict(project="ok"), invalid="new")
    assert s.project != "ok"
    with pytest.raises(KeyError):
        s.update(dict(wrong="bad", entity="nope"), project="okbutnotset")
    assert s.entity != "nope"
    assert s.project != "okbutnotset"
示例#11
0
def test_invalid_kwargs():
    s = Settings()
    with pytest.raises(KeyError):
        s.update(invalid="new")
示例#12
0
def test_update_both():
    s = Settings()
    s.update(dict(base_url="somethingb"), project="nothing")
    assert s.base_url == "somethingb"
    assert s.project == "nothing"
示例#13
0
def test_update_kwargs():
    s = Settings()
    s.update(base_url="something")
    assert s.base_url == "something"
示例#14
0
def test_update_dict():
    s = Settings()
    s.update(dict(base_url="something2"))
    assert s.base_url == "something2"
示例#15
0
def test_attrib_set_bad():
    s = Settings()
    with pytest.raises(AttributeError):
        s.missing = "nope"
示例#16
0
def test_bad_choice():
    s = Settings()
    with pytest.raises(TypeError):
        s.mode = "goodprojo"
    with pytest.raises(TypeError):
        s.update(mode="badpro")
示例#17
0
def test_attrib_get():
    s = Settings()
    s.setdefaults()
    assert s.base_url == "https://api.wandb.ai"
def test_validate_base_url():
    s = Settings()
    with pytest.raises(TypeError):
        s.update(base_url="https://wandb.ai")
    with pytest.raises(TypeError):
        s.update(base_url="https://app.wandb.ai")
    with pytest.raises(TypeError):
        s.update(base_url="http://api.wandb.ai")
    s.update(base_url="https://api.wandb.ai")
    assert s.base_url == "https://api.wandb.ai"
    s.update(base_url="https://wandb.ai.other.crazy.domain.com")
    assert s.base_url == "https://wandb.ai.other.crazy.domain.com"
示例#19
0
def test_prio_update_ignore():
    s = Settings()
    s.update(project="pizza", _source=s.Source.PROJECT)
    assert s.project == "pizza"
    s.update(project="pizza2", _source=s.Source.ENTITY)
    assert s.project == "pizza"
示例#20
0
def test_ignore_globs_env():
    s = Settings(_environ={"WANDB_IGNORE_GLOBS": "foo,bar"})
    s.setdefaults()
    assert s.ignore_globs == ["foo", "bar"]
示例#21
0
def test_ignore_globs_explicit():
    s = Settings(ignore_globs=["foo"])
    s.setdefaults()
    assert s.ignore_globs == ["foo"]
示例#22
0
def test_ignore_globs():
    s = Settings()
    s.setdefaults()
    assert s.ignore_globs == []
示例#23
0
def test_attrib_set():
    s = Settings()
    s.base_url = "this"
    assert s.base_url == "this"
示例#24
0
 def __init__(self, api: Api, backend_config: Dict[str, Any]) -> None:
     self._settings = Settings()
     self._api = api
     self.backend_config = backend_config
     self._cwd = os.getcwd()
     self._namespace = wandb.util.generate_id()
示例#25
0
def test_prio_update_over_ignore():
    s = Settings()
    s.update(project="pizza", _source=s.Source.ENTITY, _override=True)
    assert s.project == "pizza"
    s.update(project="pizza2", _source=s.Source.PROJECT, _override=True)
    assert s.project == "pizza"