Issue #22823: Use set literals instead of creating a set from a list.

Fixed an output of sets in examples.
This commit is contained in:
Serhiy Storchaka 2014-12-11 10:28:14 +02:00
parent afd6f63739
commit c02d188a84
2 changed files with 27 additions and 28 deletions

View file

@ -756,16 +756,16 @@ When we try to test that ``grob`` calls ``frob`` with the correct argument look
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 the copy.
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
<CopyingMock name='mock.foo' id='...'>

View file

@ -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,12 @@ right = ' '.join('r%s' % n for n in numerics.split())
# (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 [
'get', 'set', 'delete', 'reversed', 'missing', 'reduce', 'reduce_ex',
'getinitargs', 'getnewargs', 'getstate', 'setstate', 'getformat',
'setformat', 'repr', 'dir', 'subclasses', 'format',
])
_non_defaults = {
'__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 +1693,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),