Skip to content

Commit

Permalink
Add tests to InterceptHandler logging
Browse files Browse the repository at this point in the history
  • Loading branch information
tarsil committed Jul 21, 2023
1 parent f0cc76b commit 15c8212
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 13 deletions.
4 changes: 1 addition & 3 deletions esmerald/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@

from loguru import logger as loguru_logger

logger = logging.getLogger("esmerald")


class InterceptHandler(logging.Handler):
def emit(self, record: logging.LogRecord) -> None:
level: str
try:
level = loguru_logger.level(record.levelname).name
except ValueError:
except ValueError: # pragma: no cover
level = str(record.levelno)

frame, depth = logging.currentframe(), 2
Expand Down
8 changes: 0 additions & 8 deletions esmerald/protocols/utils/protocols.py

This file was deleted.

6 changes: 4 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -198,10 +198,12 @@ parallel = true
context = '${CONTEXT}'
source = ["tests", "esmerald"]
omit = [
"esmerald/types.py",
"esmerald/conf/__init__.py",
"esmerald/core/directives/*",
"esmerald/core/terminal/__init__.py",
"esmerald/core/terminal/*",
"esmerald/datastructures/types.py",
"esmerald/types.py",
"esmerald/contrib/*",
"tests/databases/saffier/*",
"tests/utils/functional.py",
"tests/cli/*",
Expand Down
File renamed without changes.
14 changes: 14 additions & 0 deletions tests/security/test_jwt_token.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from datetime import datetime

from freezegun import freeze_time

from esmerald.security.jwt.token import Token


@freeze_time("2022-03-03")
def test_token_expiry():
date = datetime.now()

token = Token(exp=date)

assert token.exp == date
42 changes: 42 additions & 0 deletions tests/test_logging.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import logging
import sys
from typing import Any, Optional

from loguru import logger

from esmerald import Esmerald, EsmeraldAPISettings, Gateway, get
from esmerald.conf.enums import EnvironmentType
from esmerald.logging import InterceptHandler
from esmerald.testclient import EsmeraldTestClient


class DevelopmentAppSettings(EsmeraldAPISettings):
debug: bool = True
app_name: str = "My application in development mode."
title: str = "My linezap"
environment: Optional[str] = EnvironmentType.DEVELOPMENT

def __init__(self, *args: Any, **kwds: Any) -> Any:
super().__init__(*args, **kwds)
logging_level = logging.DEBUG if self.debug else logging.INFO
loggers = ("esmerald",)
logging.getLogger().handlers = [InterceptHandler()]
for logger_name in loggers:
logging_logger = logging.getLogger(logger_name)
logging_logger.handlers = [InterceptHandler(level=logging_level)]

logger.configure(handlers=[{"sink": sys.stderr, "level": logging_level}])


def test_logger():
@get()
def home() -> None:
""""""

app = Esmerald(routes=[Gateway(handler=home)], settings_config=DevelopmentAppSettings)

client = EsmeraldTestClient(app)

response = client.get("/")

assert response.status_code == 200

0 comments on commit 15c8212

Please sign in to comment.