Converter instances work as adapters and pass the correct arguments to the wrapped converter callable.
(self)
| 61 | assert expect == c._fmt_converter_call("le_name", "le_value") |
| 62 | |
| 63 | def test_works_as_adapter(self): |
| 64 | """ |
| 65 | Converter instances work as adapters and pass the correct arguments to |
| 66 | the wrapped converter callable. |
| 67 | """ |
| 68 | taken = None |
| 69 | instance = object() |
| 70 | field = object() |
| 71 | |
| 72 | def save_args(*args): |
| 73 | nonlocal taken |
| 74 | taken = args |
| 75 | return args[0] |
| 76 | |
| 77 | Converter(save_args)(42, instance, field) |
| 78 | |
| 79 | assert (42,) == taken |
| 80 | |
| 81 | Converter(save_args, takes_self=True)(42, instance, field) |
| 82 | |
| 83 | assert (42, instance) == taken |
| 84 | |
| 85 | Converter(save_args, takes_field=True)(42, instance, field) |
| 86 | |
| 87 | assert (42, field) == taken |
| 88 | |
| 89 | Converter(save_args, takes_self=True, takes_field=True)( |
| 90 | 42, instance, field |
| 91 | ) |
| 92 | |
| 93 | assert (42, instance, field) == taken |
| 94 | |
| 95 | def test_annotations_if_last_in_pipe(self): |
| 96 | """ |