Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions conda_libmamba_solver/mamba_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,20 @@ def init_libmamba_context(
if libmamba_context.output_params.json:
libmambapy.cancel_json_output(libmamba_context)
libmamba_context.output_params.quiet = context.quiet
libmamba_context.output_params.verbosity = context.verbosity
verbosity = context.verbosity
# libmambapy only respects 4 log levels. If conda provides
# a higher verbosity, set the highest logging verbosity level.
if verbosity > 4:
verbosity = 4
libmamba_context.output_params.verbosity = verbosity
libmamba_context.set_log_level(
{
4: libmambapy.LogLevel.TRACE,
3: libmambapy.LogLevel.DEBUG,
2: libmambapy.LogLevel.INFO,
1: libmambapy.LogLevel.WARNING,
0: libmambapy.LogLevel.ERROR,
}[context.verbosity]
}[verbosity]
)

# Prefix params
Expand Down
19 changes: 19 additions & 0 deletions news/949-map-verbosity
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
### Enhancements

* <news item>

### Bug fixes

* Fix error when the verbosity level from conda is set higher than 4. (#948 via #949)

### Deprecations

* <news item>

### Docs

* <news item>

### Other

* <news item>
27 changes: 27 additions & 0 deletions tests/test_mamba_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright (C) 2022 Anaconda, Inc
# Copyright (C) 2023 conda
# SPDX-License-Identifier: BSD-3-Clause
from __future__ import annotations

import pytest
from conda.base.context import reset_context

from conda_libmamba_solver.mamba_utils import init_libmamba_context


@pytest.mark.parametrize(
"verbosity,expected_verbosity",
(
pytest.param("0", 0, id="error level logging"),
pytest.param("1", 1, id="warning level logging"),
pytest.param("2", 2, id="info level logging"),
pytest.param("3", 3, id="debug level logging"),
pytest.param("4", 4, id="trace level logging"),
pytest.param("5", 4, id="large logging level"),
),
)
def test_valid_verbosity(monkeypatch: pytest.MonkeyPatch, verbosity: str, expected_verbosity: int):
monkeypatch.setenv("CONDA_VERBOSITY", verbosity)
reset_context()
libmamba_context = init_libmamba_context()
assert libmamba_context.output_params.verbosity == expected_verbosity
Loading