[Python-checkins] cpython: Issue #22823: Use set literals instead of creating a set from a list.
serhiy.storchaka
python-checkins at python.org
Thu Dec 11 09:36:22 CET 2014
https://hg.python.org/cpython/rev/b6e6a86a92a7
changeset: 93827:b6e6a86a92a7
user: Serhiy Storchaka <storchaka at gmail.com>
date: Thu Dec 11 10:28:14 2014 +0200
summary:
Issue #22823: Use set literals instead of creating a set from a list.
Fixed an output of sets in examples.
files:
Doc/library/unittest.mock-examples.rst | 24 +++++-----
Lib/unittest/mock.py | 31 ++++++-------
2 files changed, 27 insertions(+), 28 deletions(-)
diff --git a/Doc/library/unittest.mock-examples.rst b/Doc/library/unittest.mock-examples.rst
--- a/Doc/library/unittest.mock-examples.rst
+++ b/Doc/library/unittest.mock-examples.rst
@@ -756,16 +756,16 @@
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 @@
...
>>> 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 @@
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 @@
>>> 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='...'>
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -275,13 +275,11 @@
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 @@
# (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 @@
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),
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list