Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:ALP:Source:Standard:0.1
python-loguru
loguru-fix-repr-tests.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File loguru-fix-repr-tests.patch of Package python-loguru
From 4fe21f66991abeb1905e24c3bc3c634543d959a2 Mon Sep 17 00:00:00 2001 From: Delgan <delgan.py@gmail.com> Date: Sun, 17 Jul 2022 09:18:56 +0200 Subject: [PATCH] Fix "repr()" tests failing on Python 3.11 --- tests/test_repr.py | 87 +++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 51 deletions(-) diff --git a/tests/test_repr.py b/tests/test_repr.py index ba48839..76f413d 100644 --- a/tests/test_repr.py +++ b/tests/test_repr.py @@ -1,34 +1,11 @@ -import builtins import logging import pathlib import re import sys -from inspect import iscoroutinefunction -import loguru from loguru import logger -class Wrapper: - def __init__(self, wrapped, *, repr, name): - self._wrapped = wrapped - self._repr = repr - self._name = name - self.raised = False - - def __repr__(self): - return self._repr - - def __getattr__(self, name): - if name == "__name__": - if self._name is None: - self.raised = True - raise AttributeError - else: - return self._name - return getattr(self._wrapped, name) - - def test_no_handler(): assert repr(logger) == "<loguru.logger handlers=[]>" @@ -112,22 +89,30 @@ def my_function(message): assert repr(logger) == "<loguru.logger handlers=[(id=0, level=10, sink=my_function)]>" -def test_function_without_name(monkeypatch): - function = Wrapper(lambda _: None, repr="<FunctionWithout>", name=None) - monkeypatch.setattr(builtins, "callable", lambda x: x is function or callable(x)) +def test_callable_without_name(): + class Function: + def __call__(self): + pass + + def __repr__(self): + return "<FunctionWithout>" - logger.add(function) + logger.add(Function()) assert repr(logger) == "<loguru.logger handlers=[(id=0, level=10, sink=<FunctionWithout>)]>" - assert function.raised -def test_function_with_empty_name(monkeypatch): - function = Wrapper(lambda _: None, repr="<FunctionEmpty>", name="") - monkeypatch.setattr(builtins, "callable", lambda x: x is function or callable(x)) +def test_callable_with_empty_name(): + class Function: + __name__ = "" + + def __call__(self): + pass + + def __repr__(self): + return "<FunctionEmpty>" - logger.add(function) + logger.add(Function()) assert repr(logger) == "<loguru.logger handlers=[(id=0, level=10, sink=<FunctionEmpty>)]>" - assert not function.raised def test_coroutine_function(): @@ -138,32 +123,32 @@ async def my_async_function(message): assert repr(logger) == "<loguru.logger handlers=[(id=0, level=10, sink=my_async_function)]>" -def test_coroutine_function_without_name(monkeypatch): - async_function = Wrapper(lambda _: None, repr="<AsyncFunctionWithout>", name=None) - monkeypatch.setattr( - loguru._logger, - "iscoroutinefunction", - lambda x: x is async_function or iscoroutinefunction(x), - ) +def test_coroutine_callable_without_name(): + class CoroutineFunction: + async def __call__(self): + pass + + def __repr__(self): + return "<AsyncFunctionWithout>" - logger.add(async_function) + logger.add(CoroutineFunction()) assert ( repr(logger) == "<loguru.logger handlers=[(id=0, level=10, sink=<AsyncFunctionWithout>)]>" ) - assert async_function.raised -def test_coroutine_function_with_empty_name(monkeypatch): - async_function = Wrapper(lambda _: None, repr="<AsyncFunctionEmpty>", name="") - monkeypatch.setattr( - loguru._logger, - "iscoroutinefunction", - lambda x: x is async_function or iscoroutinefunction(x), - ) +def test_coroutine_function_with_empty_name(): + class CoroutineFunction: + __name__ = "" + + def __call__(self): + pass + + def __repr__(self): + return "<AsyncFunctionEmpty>" - logger.add(async_function) + logger.add(CoroutineFunction()) assert repr(logger) == "<loguru.logger handlers=[(id=0, level=10, sink=<AsyncFunctionEmpty>)]>" - assert not async_function.raised def test_standard_handler():
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor