• 
      

    Add more flexible argument checking in called_with().

    Review Request #9523 — Created Jan. 23, 2018 and submitted — Latest diff uploaded

    Information

    kgb
    master
    72eaa5e...

    Reviewers

    kgb

    A recent change had to alter how arguments were stored when calling a
    spy, due to opcode changes in Python 3.6. Arguments in a call were
    stored as positional or keyword arguments based on the function
    signature and not on the call itself. That made some usage of kgb a bit
    less than ideal, because instead of descriptive called_with() checks
    using keyword arguments (matching descriptive calls), they'd have to
    become less-descriptive calls specifying positional arguments.

    This change enables passing keyword arguments to called_with() and
    last_called_with() to check positional arguemnts. Instead of just
    checking the list of keyword arguments in the signature, the entire list
    of arguments are checked instead. This can help future-proof unit tests,
    and just makes things more readable.

    Unit tests pass on Python 2.7, 3.4, 3.5, and 3.6.

    Tested with the other main codebases we use.