Log in or init with insufficient user information#

!lamin close
import lamindb_setup as ln_setup
from lamindb_setup.core._settings_store import (
    current_user_settings_file,
    get_settings_file_name_prefix,
    settings_dir,
)
import pytest

Log in with in-sufficient information#

with pytest.raises(TypeError):
    ln_setup.login()

If we add an email or handle it looks up the password from the stored env file (lamin login testuser1@lamin.ai):

ln_setup.login("testuser1@lamin.ai")

Now, let’s start with a fresh environment without any user profiles stored.

(
    settings_dir / f"{get_settings_file_name_prefix()}user--testuser1@lamin.ai.env"
).unlink()
(settings_dir / f"{get_settings_file_name_prefix()}user--testuser1.env").unlink()
current_user_settings_file().unlink()

If we try to login with a handle at first login, this will error:

with pytest.raises(RuntimeError):
    ln_setup.login("testuser1", password="dummy")

If we try to login without password, this will error:

with pytest.raises(RuntimeError):
    ln_setup.login("testuser1@lamin.ai")

If we try login with a wrong password, this will error:

from gotrue.errors import AuthApiError

with pytest.raises(AuthApiError):
    ln_setup.login("testuser1@lamin.ai", key="hello")

Add back login for testuser1:

from laminci.nox import login_testuser1
login_testuser1("dummy_nox_session_arg")