Some bugfix in CI
This commit is contained in:
+11
-3
@@ -11,12 +11,18 @@ Usage:
|
|||||||
logger.info("message")
|
logger.info("message")
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import logging
|
import logging
|
||||||
|
from types import FrameType
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from loguru import Record
|
||||||
|
|
||||||
|
|
||||||
def get_log_level() -> str:
|
def get_log_level() -> str:
|
||||||
"""Reads LOG_LEVEL or log_level from .env or environment, defaults to 'INFO'."""
|
"""Reads LOG_LEVEL or log_level from .env or environment, defaults to 'INFO'."""
|
||||||
@@ -27,12 +33,12 @@ def get_log_level() -> str:
|
|||||||
|
|
||||||
# ── Stdout / stderr filters ───────────────────────────────────────────────────
|
# ── Stdout / stderr filters ───────────────────────────────────────────────────
|
||||||
|
|
||||||
def _stdout_filter(record: dict) -> bool:
|
def _stdout_filter(record: Record) -> bool:
|
||||||
"""Pass DEBUG / INFO / WARNING to stdout."""
|
"""Pass DEBUG / INFO / WARNING to stdout."""
|
||||||
return record["level"].no < logging.ERROR
|
return record["level"].no < logging.ERROR
|
||||||
|
|
||||||
|
|
||||||
def _stderr_filter(record: dict) -> bool:
|
def _stderr_filter(record: Record) -> bool:
|
||||||
"""Pass ERROR / CRITICAL to stderr."""
|
"""Pass ERROR / CRITICAL to stderr."""
|
||||||
return record["level"].no >= logging.ERROR
|
return record["level"].no >= logging.ERROR
|
||||||
|
|
||||||
@@ -43,12 +49,14 @@ class InterceptHandler(logging.Handler):
|
|||||||
"""Redirect all stdlib logging calls into Loguru."""
|
"""Redirect all stdlib logging calls into Loguru."""
|
||||||
|
|
||||||
def emit(self, record: logging.LogRecord) -> None:
|
def emit(self, record: logging.LogRecord) -> None:
|
||||||
|
level: str | int
|
||||||
try:
|
try:
|
||||||
level = logger.level(record.levelname).name
|
level = logger.level(record.levelname).name
|
||||||
except ValueError:
|
except ValueError:
|
||||||
level = record.levelno
|
level = record.levelno
|
||||||
|
|
||||||
frame, depth = sys._getframe(6), 6
|
frame: FrameType | None = sys._getframe(6)
|
||||||
|
depth = 6
|
||||||
while frame and frame.f_code.co_filename == logging.__file__:
|
while frame and frame.f_code.co_filename == logging.__file__:
|
||||||
frame = frame.f_back
|
frame = frame.f_back
|
||||||
depth += 1
|
depth += 1
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ async def test_get_random_cards_valid():
|
|||||||
params = {"user_id": EXIST_USER}
|
params = {"user_id": EXIST_USER}
|
||||||
response = await client.get("/get_random_cards", params=params)
|
response = await client.get("/get_random_cards", params=params)
|
||||||
print(f"\nINPUT: endpoint=/get_random_cards\nOUTPUT: status={response.status_code} | json={response.json()}")
|
print(f"\nINPUT: endpoint=/get_random_cards\nOUTPUT: status={response.status_code} | json={response.json()}")
|
||||||
if response.status_code == 404 and BaseResponse.model_validate(response.json()).result == "No active cards":
|
if response.status_code == 404 and "No active cards" in str(BaseResponse.model_validate(response.json()).result):
|
||||||
global NO_ACTIVE_CARDS_STATUS
|
global NO_ACTIVE_CARDS_STATUS
|
||||||
NO_ACTIVE_CARDS_STATUS = True
|
NO_ACTIVE_CARDS_STATUS = True
|
||||||
pytest.skip(reason="No active cards in MongoDB")
|
pytest.skip(reason="No active cards in MongoDB")
|
||||||
|
|||||||
Reference in New Issue
Block a user