diff -r f4e75efdc7f1 Doc/library/unittest.mock-examples.rst --- a/Doc/library/unittest.mock-examples.rst Sat Nov 15 13:30:42 2014 +0200 +++ b/Doc/library/unittest.mock-examples.rst Sat Nov 15 13:40:13 2014 +0200 @@ -756,16 +756,16 @@ When we try to test that ``grob`` calls what happens: >>> with patch('mymodule.frob') as mock_frob: - ... val = set([6]) + ... val = {6} ... mymodule.grob(val) ... >>> val - set([]) - >>> mock_frob.assert_called_with(set([6])) + set() + >>> mock_frob.assert_called_with({6}) Traceback (most recent call last): ... - AssertionError: Expected: ((set([6]),), {}) - Called with: ((set([]),), {}) + AssertionError: Expected: (({6},), {}) + Called with: ((set(),), {}) One possibility would be for mock to copy the arguments you pass in. This could then cause problems if you do assertions that rely on object identity @@ -793,12 +793,12 @@ me. ... >>> with patch('mymodule.frob') as mock_frob: ... new_mock = copy_call_args(mock_frob) - ... val = set([6]) + ... val = {6} ... mymodule.grob(val) ... - >>> new_mock.assert_called_with(set([6])) + >>> new_mock.assert_called_with({6}) >>> new_mock.call_args - call(set([6])) + call({6}) ``copy_call_args`` is called with the mock that will be called. It returns a new mock that we do the assertion on. The ``side_effect`` function makes a copy of @@ -811,10 +811,10 @@ the args and calls our ``new_mock`` with checking inside a ``side_effect`` function. >>> def side_effect(arg): - ... assert arg == set([6]) + ... assert arg == {6} ... >>> mock = Mock(side_effect=side_effect) - >>> mock(set([6])) + >>> mock({6}) >>> mock(set()) Traceback (most recent call last): ... @@ -839,8 +839,8 @@ Here's an example implementation: >>> c.assert_called_with(arg) Traceback (most recent call last): ... - AssertionError: Expected call: mock(set([1])) - Actual call: mock(set([])) + AssertionError: Expected call: mock({1}) + Actual call: mock(set()) >>> c.foo diff -r f4e75efdc7f1 Lib/unittest/mock.py --- a/Lib/unittest/mock.py Sat Nov 15 13:30:42 2014 +0200 +++ b/Lib/unittest/mock.py Sat Nov 15 13:40:13 2014 +0200 @@ -275,13 +275,11 @@ def _copy(value): return value -_allowed_names = set( - [ - 'return_value', '_mock_return_value', 'side_effect', - '_mock_side_effect', '_mock_parent', '_mock_new_parent', - '_mock_name', '_mock_new_name' - ] -) +_allowed_names = { + 'return_value', '_mock_return_value', 'side_effect', + '_mock_side_effect', '_mock_parent', '_mock_new_parent', + '_mock_name', '_mock_new_name' +} def _delegating_property(name): @@ -1679,11 +1677,11 @@ right = ' '.join('r%s' % n for n in nume # (as they are metaclass methods) # __del__ is not supported at all as it causes problems if it exists -_non_defaults = set('__%s__' % method for method in [ +_non_defaults = {'__%s__' % method for method in [ 'get', 'set', 'delete', 'reversed', 'missing', 'reduce', 'reduce_ex', 'getinitargs', 'getnewargs', 'getstate', 'setstate', 'getformat', 'setformat', 'repr', 'dir', 'subclasses', 'format', -]) +]} def _get_method(name, func): @@ -1694,19 +1692,19 @@ def _get_method(name, func): return method -_magics = set( +_magics = { '__%s__' % method for method in ' '.join([magic_methods, numerics, inplace, right]).split() -) +} _all_magics = _magics | _non_defaults -_unsupported_magics = set([ +_unsupported_magics = { '__getattr__', '__setattr__', '__init__', '__new__', '__prepare__' '__instancecheck__', '__subclasscheck__', '__del__' -]) +} _calculate_return_value = { '__hash__': lambda self: object.__hash__(self),