diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d4e533255..dc01c3400 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,6 @@ concurrency: env: FORCE_COLOR: 1 - UV_VERSION: 0.3.0 jobs: @@ -45,7 +44,9 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/${{ env.UV_VERSION }}/uv-installer.sh | sh + uses: astral-sh/setup-uv@v1 + with: + version: 0.4.7 - name: Install package run: uv pip install --system -e .[dev] aiida-core==${{ matrix.aiida-core-version }} diff --git a/Dockerfile b/Dockerfile index 0d8fdf05d..ff2ae2704 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG FULL_STACK_VER=2024.1021 -ARG UV_VER=0.2.27 +ARG FULL_STACK_VER=2024.1022 +ARG UV_VER=0.4.7 ARG QE_VER=7.2 ARG QE_DIR=/opt/conda/envs/quantum-espresso-${QE_VER} diff --git a/pyproject.toml b/pyproject.toml index fc5478f42..616c5ff9b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,12 +8,16 @@ build-backend = "setuptools.build_meta" [tool.pytest.ini_options] addopts = '--strict-config --strict-markers --durations=30 --durations-min=1 -ra' filterwarnings = [ - 'ignore:Object of type .* not in session, .* operation along .* will not proceed:', + # This is needed since SQLAlchemy 2.0, see + # https://github.com/aiidalab/aiidalab-widgets-base/issues/605 + 'ignore:Object of type.*not in session,.*operation along.*will not proceed:', 'ignore:Creating AiiDA configuration:UserWarning:', 'ignore:metadata.*traitlets.traitlets.Unicode object:DeprecationWarning:', # For some reason we get this error, see # https://github.com/aiidalab/aiidalab-widgets-base/issues/551 'ignore:Exception ignored in:pytest.PytestUnraisableExceptionWarning:_pytest', + # This popped up in spglib 2.5. Since we still try to support spglib v1, + "ignore:dict interface.*is deprecated.Use attribute interface:DeprecationWarning:", ] [tool.ruff] diff --git a/tests_integration/conftest.py b/tests_integration/conftest.py index a011bfee7..8c84dd919 100644 --- a/tests_integration/conftest.py +++ b/tests_integration/conftest.py @@ -39,14 +39,14 @@ def execute(command, user=None, workdir=None, **kwargs): opts = f"{opts} --workdir={workdir}" command = f"exec {opts} aiidalab {command}" - return docker_compose.execute(command, **kwargs) + return docker_compose.execute(command, **kwargs).decode().strip() return execute @pytest.fixture(scope="session") def nb_user(aiidalab_exec): - return aiidalab_exec("bash -c 'echo \"${NB_USER}\"'").decode().strip() + return aiidalab_exec("bash -c 'echo \"${NB_USER}\"'") @pytest.fixture(scope="session") diff --git a/tests_integration/test_image.py b/tests_integration/test_image.py index e134df02b..0303ab725 100755 --- a/tests_integration/test_image.py +++ b/tests_integration/test_image.py @@ -12,16 +12,19 @@ def test_notebook_service_available(notebook_service): def test_verdi_status(aiidalab_exec, nb_user): # Check the aiida service is running and connected to RabbitMQ # The notebook_service fixture is needed to wait for the services to be up - output = aiidalab_exec("verdi status", user=nb_user).decode().strip() - assert "Connected to RabbitMQ" in output + output = aiidalab_exec("verdi status", user=nb_user) + for status in ("version", "config", "profile", "storage", "broker", "daemon"): + assert f"✔ {status}" in output + assert "/home/jovyan/.aiida" in output assert "Daemon is running" in output + assert "Unable to connect to broker" not in output @pytest.mark.usefixtures("notebook_service") def test_pseudos_families_are_installed(aiidalab_exec, nb_user): # Check the aiida service is running and connected to RabbitMQ # The notebook_service fixture is needed to wait for the services to be up - output = aiidalab_exec("aiida-pseudo list", user=nb_user).decode().strip() + output = aiidalab_exec("aiida-pseudo list", user=nb_user) assert "SSSP" in output assert "PseudoDojo" in output