Utility to assert a certain number of function calls. :param func: Additional callback for each function call. .. code-block:: python assert_calls, func = make_call_asserter() with assert_calls(2): func() func()
(func=None)
| 929 | |
| 930 | |
| 931 | def make_call_asserter(func=None): |
| 932 | """Utility to assert a certain number of function calls. |
| 933 | |
| 934 | :param func: Additional callback for each function call. |
| 935 | |
| 936 | .. code-block:: python |
| 937 | assert_calls, func = make_call_asserter() |
| 938 | with assert_calls(2): |
| 939 | func() |
| 940 | func() |
| 941 | """ |
| 942 | calls = [0] |
| 943 | |
| 944 | @contextmanager |
| 945 | def asserter(count, msg=None): |
| 946 | calls[0] = 0 |
| 947 | yield |
| 948 | assert calls[0] == count |
| 949 | |
| 950 | def wrapped(*args, **kwargs): |
| 951 | calls[0] += 1 |
| 952 | if func is not None: |
| 953 | return func(*args, **kwargs) |
| 954 | |
| 955 | return asserter, wrapped |
| 956 | |
| 957 | |
| 958 | class TestCallbackDict: |
no outgoing calls
no test coverage detected