Add warnings when calling deprecated method (#596)

* Add test

* To run the workflow

* Fix import

* Format

* Add warning

* Fix indentation

* Test deprecated method

* More test

* Format

* Add import if needed

---------

Co-authored-by: Adrien Vannson <adrien.vannson@gardacp.com>
This commit is contained in:
Adrien
2024-08-14 22:33:43 +02:00
committed by GitHub
parent f96f51650c
commit 4e9a17c227
4 changed files with 43 additions and 0 deletions

View File

@@ -12,3 +12,10 @@ message Message {
option deprecated = true;
string value = 1;
}
message Empty {}
service TestService {
rpc func(Empty) returns (Empty);
rpc deprecated_func(Empty) returns (Empty) { option deprecated = true; };
}

View File

@@ -2,9 +2,12 @@ import warnings
import pytest
from tests.mocks import MockChannel
from tests.output_betterproto.deprecated import (
Empty,
Message,
Test,
TestServiceStub,
)
@@ -43,3 +46,19 @@ def test_message_with_deprecated_field_not_set_default(message):
_ = Test(value=10).message
assert not record
@pytest.mark.asyncio
async def test_service_with_deprecated_method():
stub = TestServiceStub(MockChannel([Empty(), Empty()]))
with pytest.warns(DeprecationWarning) as record:
await stub.deprecated_func(Empty())
assert len(record) == 1
assert str(record[0].message) == f"TestService.deprecated_func is deprecated"
with pytest.warns(None) as record:
await stub.func(Empty())
assert not record