Replace Callable with log_level

This allows the caller to pass a log level to the suggestions printer,
rather than a Callable.
This commit is contained in:
David Dalcino
2021-07-18 18:40:32 -07:00
parent 7b6af69645
commit bf196bb0ba
2 changed files with 19 additions and 19 deletions

View File

@@ -20,6 +20,7 @@
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import itertools
import logging
import operator
import posixpath
import random
@@ -717,11 +718,12 @@ def suggested_follow_up(meta: MetadataFactory) -> List[str]:
return msg
def show_suggestion(suggestions: List[str], printer: Callable[[str], None]):
def log_suggested_follow_up(suggestions: List[str], log_level: int):
if suggestions:
printer("=" * 30 + "Suggested follow-up:" + "=" * 30)
logger = getLogger("aqt.metadata")
logger.log(log_level, "=" * 30 + "Suggested follow-up:" + "=" * 30)
for suggestion in suggestions:
printer("* " + suggestion)
logger.log(log_level, "* " + suggestion)
def show_list(meta: MetadataFactory) -> int:
@@ -730,7 +732,7 @@ def show_list(meta: MetadataFactory) -> int:
output = meta.getList()
if not output:
logger.info("No {} available for this request.".format(meta.request_type))
show_suggestion(suggested_follow_up(meta), logger.info)
log_suggested_follow_up(suggested_follow_up(meta), logging.INFO)
return 1
if isinstance(output, Versions):
print(format(output))
@@ -752,5 +754,5 @@ def show_list(meta: MetadataFactory) -> int:
return 1
except (ArchiveConnectionError, ArchiveDownloadError) as e:
logger.error("{}".format(e))
show_suggestion(suggested_follow_up(meta), logger.error)
log_suggested_follow_up(suggested_follow_up(meta), logging.ERROR)
return 1

View File

@@ -1,4 +1,5 @@
import json
import logging
import re
import sys
from pathlib import Path
@@ -6,6 +7,7 @@ from typing import Generator
import pytest
from aqt.helper import setup_logging
from aqt.installer import Cli
from aqt.metadata import (
ArchiveId,
@@ -13,7 +15,7 @@ from aqt.metadata import (
SimpleSpec,
Version,
Versions,
show_suggestion,
log_suggested_follow_up,
suggested_follow_up,
)
@@ -457,21 +459,17 @@ def test_suggested_follow_up(meta: MetadataFactory, expected_message: str):
assert suggested_follow_up(meta) == expected_message
def test_show_suggestion():
def test_log_suggested_follow_up(caplog, monkeypatch):
suggestions = [
"Please use 'aqt list tools mac desktop --extensions <QT_VERSION>' to list valid extensions.",
"Please use 'aqt list tools mac desktop' to check what tools are available.",
]
expected = (
"==============================Suggested follow-up:==============================\n"
"* Please use 'aqt list tools mac desktop --extensions <QT_VERSION>' to list valid extensions.\n"
"* Please use 'aqt list tools mac desktop' to check what tools are available.\n"
)
expected = [
"==============================Suggested follow-up:==============================",
"* Please use 'aqt list tools mac desktop --extensions <QT_VERSION>' to list valid extensions.",
"* Please use 'aqt list tools mac desktop' to check what tools are available.",
]
output = [""]
def outputter(msg: str) -> None:
output[0] = output[0] + msg + "\n"
show_suggestion(suggestions, outputter)
assert output[0] == expected
log_suggested_follow_up(suggestions, logging.ERROR)
actual = [rec.message for rec in caplog.records]
assert actual == expected