Methods of generated `*_Client` classes don't validate their arguments
dahlia opened this issue · 0 comments
dahlia commented
Where we have the below interface:
service counter (
bigint increment (bigint delta)
);
The following call doesn't raise TypeError
but UnexpectedNirumResponseError
:
>>> assert isinstance(client, Counter_Client)
>>> client.increment(None)
Traceback (most recent call last):
...
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
...
nirum.exc.UnexpectedNirumResponseError: ...
It even doesn't any error for an invalid type in some cases (where the argument value is homoiconic to its JSON reduction):
>>> client.increment("123")
123