Skip to content

Methods of generated *_Client classes don't validate their arguments #220

Closed
@dahlia

Description

@dahlia

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    cmp:compilerComponent: Compiler backend (e.g., annotation processors, code generators)target:pythontyp:bugType: Bug/defect

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions