Exemple #1
0
def test_init_from_env_file(tmpdir):
    env_file = tmpdir / "env_file"
    with open(str(env_file), "w") as f:
        f.write("THREEDI_API_HOST=localhost:8000\n")
        f.write("THREEDI_API_USERNAME=username\n")
        f.write("THREEDI_API_PASSWORD=password\n")
    ThreediApi(env_file=str(env_file))
Exemple #2
0
def test_init_from_config(config):
    api = ThreediApi(config=config)
    assert isinstance(api._api, V3Api)
    assert isinstance(api._client, ApiClient)
    assert api._client is api._api.api_client
    assert api.version == "v3"
    assert not api.asynchronous
def get_api_client(api_username: str,
                   api_password: str,
                   api_host: str,
                   version: str = "v3-beta") -> ThreediApi:
    """Setup 3Di API Client using username and password."""
    config = {
        "THREEDI_API_HOST": api_host,
        "THREEDI_API_USERNAME": api_username,
        "THREEDI_API_PASSWORD": api_password,
    }
    api_client = ThreediApi(config=config, version=version)
    return api_client
def get_api_client_with_tokens(api_host: str,
                               api_access_token: str,
                               api_refresh_token: str,
                               version: str = "v3-beta") -> ThreediApi:
    """Setup 3Di API Client using access and refresh tokens."""
    config = {
        "THREEDI_API_HOST": api_host,
        "THREEDI_API_ACCESS_TOKEN": api_access_token,
        "THREEDI_API_REFRESH_TOKEN": api_refresh_token,
    }
    api_client = ThreediApi(config=config, version=version)
    return api_client
def get_api_client_with_personal_api_token(
        personal_api_token: str,
        api_host: str,
        version: str = "v3-beta") -> ThreediApi:
    """Setup 3Di API Client using Personal API Token."""
    config = {
        "THREEDI_API_HOST": api_host,
        "THREEDI_API_USERNAME": "******",
        "THREEDI_API_PERSONAL_API_TOKEN": personal_api_token,
    }
    api_client = ThreediApi(config=config, version=version)
    return api_client
Exemple #6
0
def test_context_mgr(config):
    with ThreediApi(config=config) as api:
        client = mock.patch.object(api, "_client").start()

    assert client.close.called
Exemple #7
0
def test_init_async(config):
    api = ThreediApi(config=config, asynchronous=True)
    assert isinstance(api._client, AsyncApiClient)
    assert api.asynchronous
Exemple #8
0
def test_init_nonexisting_version(config):
    with pytest.raises(ValueError):
        ThreediApi(config=config, version="v1")
Exemple #9
0
def test_init_different_version(config):
    api = ThreediApi(config=config, version="v3-alpha")
    assert isinstance(api._api, V3AlphaApi)
    assert api.version == "v3-alpha"
Exemple #10
0
def test_init_with_other_suffix_in_host(config, suffix):
    config["THREEDI_API_HOST"] += suffix
    ThreediApi(config=config)
Exemple #11
0
async def test_async_context_mgr(config):
    async with ThreediApi(config=config, asynchronous=True) as api:
        client = mock.patch.object(api, "_client",
                                   new_callable=AsyncMock).start()

    assert client.close.called
Exemple #12
0
def test_init_missing_config(key, config):
    del config[key]
    with pytest.raises(ValueError):
        ThreediApi(config=config)
Exemple #13
0
def test_init_from_env_vars(monkeypatch):
    monkeypatch.setenv("THREEDI_API_HOST", "localhost:8000")
    monkeypatch.setenv("THREEDI_API_USERNAME", "username")
    monkeypatch.setenv("THREEDI_API_PASSWORD", "password")
    ThreediApi()
Exemple #14
0
def v3_api(config):
    return ThreediApi(config=config)
Exemple #15
0
async def test_async_context_mgr_with_sync(config):
    with pytest.raises(RuntimeError):
        async with ThreediApi(config=config, asynchronous=False):
            pass
Exemple #16
0
def test_init_with_version_in_host(config, suffix):
    config["THREEDI_API_HOST"] += suffix
    with pytest.raises(ValueError):
        ThreediApi(config=config)
Exemple #17
0
def test_context_mgr_with_async(config):
    with pytest.raises(RuntimeError):
        with ThreediApi(config=config, asynchronous=True):
            pass