Add __str__ and __repr__ to Sanic and Bluepring (#2043)
This commit is contained in:
parent
a733d32715
commit
93a697f6ea
@ -33,4 +33,8 @@ class BaseSanic(
|
|||||||
ExceptionMixin,
|
ExceptionMixin,
|
||||||
metaclass=Base,
|
metaclass=Base,
|
||||||
):
|
):
|
||||||
...
|
def __str__(self) -> str:
|
||||||
|
return f"<{self.__class__.__name__} {self.name}>"
|
||||||
|
|
||||||
|
def __repr__(self) -> str:
|
||||||
|
return f'{self.__class__.__name__}(name="{self.name}")'
|
||||||
|
@ -49,6 +49,23 @@ class Blueprint(BaseSanic):
|
|||||||
self.version = version
|
self.version = version
|
||||||
self.strict_slashes = strict_slashes
|
self.strict_slashes = strict_slashes
|
||||||
|
|
||||||
|
def __repr__(self) -> str:
|
||||||
|
args = ", ".join(
|
||||||
|
[
|
||||||
|
f'{attr}="{getattr(self, attr)}"'
|
||||||
|
if isinstance(getattr(self, attr), str)
|
||||||
|
else f"{attr}={getattr(self, attr)}"
|
||||||
|
for attr in (
|
||||||
|
"name",
|
||||||
|
"url_prefix",
|
||||||
|
"host",
|
||||||
|
"version",
|
||||||
|
"strict_slashes",
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
return f"Blueprint({args})"
|
||||||
|
|
||||||
def route(self, *args, **kwargs):
|
def route(self, *args, **kwargs):
|
||||||
kwargs["apply"] = False
|
kwargs["apply"] = False
|
||||||
return super().route(*args, **kwargs)
|
return super().route(*args, **kwargs)
|
||||||
|
43
tests/test_base.py
Normal file
43
tests/test_base.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from sanic import Blueprint, Sanic
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def app():
|
||||||
|
return Sanic("my_app")
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def bp(app):
|
||||||
|
return Blueprint("my_bp")
|
||||||
|
|
||||||
|
|
||||||
|
def test_app_str(app):
|
||||||
|
assert str(app) == "<Sanic my_app>"
|
||||||
|
|
||||||
|
|
||||||
|
def test_app_repr(app):
|
||||||
|
assert repr(app) == 'Sanic(name="my_app")'
|
||||||
|
|
||||||
|
|
||||||
|
def test_bp_str(bp):
|
||||||
|
assert str(bp) == "<Blueprint my_bp>"
|
||||||
|
|
||||||
|
|
||||||
|
def test_bp_repr(bp):
|
||||||
|
assert repr(bp) == (
|
||||||
|
'Blueprint(name="my_bp", url_prefix=None, host=None, '
|
||||||
|
"version=None, strict_slashes=None)"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_bp_repr_with_values(bp):
|
||||||
|
bp.host = "example.com"
|
||||||
|
bp.url_prefix = "/foo"
|
||||||
|
bp.version = 3
|
||||||
|
bp.strict_slashes = True
|
||||||
|
assert repr(bp) == (
|
||||||
|
'Blueprint(name="my_bp", url_prefix="/foo", host="example.com", '
|
||||||
|
"version=3, strict_slashes=True)"
|
||||||
|
)
|
Loading…
x
Reference in New Issue
Block a user