mirror of
https://github.com/miurahr/aqtinstall.git
synced 2025-12-18 13:14:37 +03:00
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:
@@ -20,6 +20,7 @@
|
|||||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
import itertools
|
import itertools
|
||||||
|
import logging
|
||||||
import operator
|
import operator
|
||||||
import posixpath
|
import posixpath
|
||||||
import random
|
import random
|
||||||
@@ -717,11 +718,12 @@ def suggested_follow_up(meta: MetadataFactory) -> List[str]:
|
|||||||
return msg
|
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:
|
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:
|
for suggestion in suggestions:
|
||||||
printer("* " + suggestion)
|
logger.log(log_level, "* " + suggestion)
|
||||||
|
|
||||||
|
|
||||||
def show_list(meta: MetadataFactory) -> int:
|
def show_list(meta: MetadataFactory) -> int:
|
||||||
@@ -730,7 +732,7 @@ def show_list(meta: MetadataFactory) -> int:
|
|||||||
output = meta.getList()
|
output = meta.getList()
|
||||||
if not output:
|
if not output:
|
||||||
logger.info("No {} available for this request.".format(meta.request_type))
|
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
|
return 1
|
||||||
if isinstance(output, Versions):
|
if isinstance(output, Versions):
|
||||||
print(format(output))
|
print(format(output))
|
||||||
@@ -752,5 +754,5 @@ def show_list(meta: MetadataFactory) -> int:
|
|||||||
return 1
|
return 1
|
||||||
except (ArchiveConnectionError, ArchiveDownloadError) as e:
|
except (ArchiveConnectionError, ArchiveDownloadError) as e:
|
||||||
logger.error("{}".format(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
|
return 1
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
import logging
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@@ -6,6 +7,7 @@ from typing import Generator
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
from aqt.helper import setup_logging
|
||||||
from aqt.installer import Cli
|
from aqt.installer import Cli
|
||||||
from aqt.metadata import (
|
from aqt.metadata import (
|
||||||
ArchiveId,
|
ArchiveId,
|
||||||
@@ -13,7 +15,7 @@ from aqt.metadata import (
|
|||||||
SimpleSpec,
|
SimpleSpec,
|
||||||
Version,
|
Version,
|
||||||
Versions,
|
Versions,
|
||||||
show_suggestion,
|
log_suggested_follow_up,
|
||||||
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
|
assert suggested_follow_up(meta) == expected_message
|
||||||
|
|
||||||
|
|
||||||
def test_show_suggestion():
|
def test_log_suggested_follow_up(caplog, monkeypatch):
|
||||||
suggestions = [
|
suggestions = [
|
||||||
"Please use 'aqt list tools mac desktop --extensions <QT_VERSION>' to list valid extensions.",
|
"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.",
|
"Please use 'aqt list tools mac desktop' to check what tools are available.",
|
||||||
]
|
]
|
||||||
expected = (
|
expected = [
|
||||||
"==============================Suggested follow-up:==============================\n"
|
"==============================Suggested follow-up:==============================",
|
||||||
"* Please use 'aqt list tools mac desktop --extensions <QT_VERSION>' to list valid extensions.\n"
|
"* 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.\n"
|
"* Please use 'aqt list tools mac desktop' to check what tools are available.",
|
||||||
)
|
]
|
||||||
|
|
||||||
output = [""]
|
log_suggested_follow_up(suggestions, logging.ERROR)
|
||||||
|
actual = [rec.message for rec in caplog.records]
|
||||||
def outputter(msg: str) -> None:
|
assert actual == expected
|
||||||
output[0] = output[0] + msg + "\n"
|
|
||||||
|
|
||||||
show_suggestion(suggestions, outputter)
|
|
||||||
assert output[0] == expected
|
|
||||||
|
|||||||
Reference in New Issue
Block a user