aiogram/tests/deprecated.py
mpa c083fcd99a tests(deprecated):
add new check_deprecated context manager for version check, use mark.parametrize from pytest for observer deprecation tests
2020-05-12 16:07:16 +04:00

26 lines
671 B
Python

from contextlib import contextmanager
from typing import Type
import pytest
from packaging import version
import aiogram
@contextmanager
def check_deprecated(
max_version: str, exception: Type[Exception], warning: Type[Warning] = DeprecationWarning,
) -> None:
"""
Should be used for modules that are being deprecated or already removed from aiogram
"""
parsed_max_version = version.parse(max_version)
current_version = version.parse(aiogram.__version__)
if parsed_max_version <= current_version:
with pytest.raises(exception):
yield
else:
with pytest.warns(warning, match=max_version):
yield