Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pyupgrade for 
openSUSE:Factory checked in at 2021-09-09 23:07:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyupgrade (Old)
 and      /work/SRC/openSUSE:Factory/.python-pyupgrade.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pyupgrade"

Thu Sep  9 23:07:45 2021 rev:15 rq:917719 version:2.24.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyupgrade/python-pyupgrade.changes        
2021-08-11 11:47:53.441697892 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-pyupgrade.new.1899/python-pyupgrade.changes  
    2021-09-09 23:08:10.644875054 +0200
@@ -1,0 +2,7 @@
+Fri Aug 20 19:49:12 UTC 2021 - Sebastian Wagner <sebix+novell....@sebix.at>
+
+- update to version 2.24.0:
+ - Rewrite unittest deprecated aliases
+   Fixes #519
+
+-------------------------------------------------------------------

Old:
----
  python-pyupgrade-2.23.3.tar.gz

New:
----
  python-pyupgrade-2.24.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pyupgrade.spec ++++++
--- /var/tmp/diff_new_pack.wxxre5/_old  2021-09-09 23:08:11.128875616 +0200
+++ /var/tmp/diff_new_pack.wxxre5/_new  2021-09-09 23:08:11.128875616 +0200
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-pyupgrade
-Version:        2.23.3
+Version:        2.24.0
 Release:        0
 Summary:        A tool to automatically upgrade syntax for newer versions
 License:        MIT

++++++ python-pyupgrade-2.23.3.tar.gz -> python-pyupgrade-2.24.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyupgrade-2.23.3/.pre-commit-config.yaml 
new/pyupgrade-2.24.0/.pre-commit-config.yaml
--- old/pyupgrade-2.23.3/.pre-commit-config.yaml        2021-08-04 
19:50:42.000000000 +0200
+++ new/pyupgrade-2.24.0/.pre-commit-config.yaml        2021-08-20 
00:33:53.000000000 +0200
@@ -34,7 +34,7 @@
     -   id: add-trailing-comma
         args: [--py36-plus]
 -   repo: https://github.com/asottile/pyupgrade
-    rev: v2.23.3
+    rev: v2.24.0
     hooks:
     -   id: pyupgrade
         args: [--py36-plus]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyupgrade-2.23.3/README.md 
new/pyupgrade-2.24.0/README.md
--- old/pyupgrade-2.23.3/README.md      2021-08-04 19:50:42.000000000 +0200
+++ new/pyupgrade-2.24.0/README.md      2021-08-20 00:33:53.000000000 +0200
@@ -20,7 +20,7 @@
 
 ```yaml
 -   repo: https://github.com/asottile/pyupgrade
-    rev: v2.23.3
+    rev: v2.24.0
     hooks:
     -   id: pyupgrade
 ```
@@ -165,6 +165,25 @@
 
 [python-modernize/python-modernize#178]: 
https://github.com/python-modernize/python-modernize/issues/178
 
+### unittest deprecated aliases
+
+Rewrites [deprecated unittest method 
aliases](https://docs.python.org/3/library/unittest.html#deprecated-aliases) to 
their non-deprecated forms.
+
+Availability:
+- More deprecated aliases are rewritten with `--py3-plus`
+
+```diff
+ from unittest import TestCase
+
+
+ class MyTests(TestCase):
+     def test_something(self):
+-        self.failUnlessEqual(1, 1)
++        self.assertEqual(1, 1)
+-        self.assertEquals(1, 1)
++        self.assertEqual(1, 1)
+```
+
 ### `super()` calls
 
 Availability:
@@ -482,7 +501,6 @@
 +float
 ```
 
-
 ### `typing.NamedTuple` / `typing.TypedDict` py36+ syntax
 
 Availability:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyupgrade-2.23.3/pyupgrade/_plugins/unittest_aliases.py 
new/pyupgrade-2.24.0/pyupgrade/_plugins/unittest_aliases.py
--- old/pyupgrade-2.23.3/pyupgrade/_plugins/unittest_aliases.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/pyupgrade-2.24.0/pyupgrade/_plugins/unittest_aliases.py 2021-08-20 
00:33:53.000000000 +0200
@@ -0,0 +1,60 @@
+import ast
+import functools
+from typing import Iterable
+from typing import Tuple
+
+from tokenize_rt import Offset
+
+from pyupgrade._ast_helpers import ast_to_offset
+from pyupgrade._data import register
+from pyupgrade._data import State
+from pyupgrade._data import TokenFunc
+from pyupgrade._token_helpers import replace_name
+
+
+METHOD_MAPPING_PY27 = {
+    'assertEquals': 'assertEqual',
+    'failUnlessEqual': 'assertEqual',
+    'failIfEqual': 'assertNotEqual',
+    'failUnless': 'assertTrue',
+    'assert_': 'assertTrue',
+    'failIf': 'assertFalse',
+    'failUnlessRaises': 'assertRaises',
+    'failUnlessAlmostEqual': 'assertAlmostEqual',
+    'failIfAlmostEqual': 'assertNotAlmostEqual',
+}
+
+METHOD_MAPPING_PY35_PLUS = {
+    **METHOD_MAPPING_PY27,
+    'assertNotEquals': 'assertNotEqual',
+    'assertAlmostEquals': 'assertAlmostEqual',
+    'assertNotAlmostEquals': 'assertNotAlmostEqual',
+    'assertRegexpMatches': 'assertRegex',
+    'assertNotRegexpMatches': 'assertNotRegex',
+    'assertRaisesRegexp': 'assertRaisesRegex',
+}
+
+
+@register(ast.Call)
+def visit_Call(
+        state: State,
+        node: ast.Call,
+        parent: ast.AST,
+) -> Iterable[Tuple[Offset, TokenFunc]]:
+    if state.settings.min_version >= (3,):
+        method_mapping = METHOD_MAPPING_PY35_PLUS
+    else:
+        method_mapping = METHOD_MAPPING_PY27
+
+    if (
+            isinstance(node.func, ast.Attribute) and
+            isinstance(node.func.value, ast.Name) and
+            node.func.value.id == 'self' and
+            node.func.attr in method_mapping
+    ):
+        func = functools.partial(
+            replace_name,
+            name=node.func.attr,
+            new=f'self.{method_mapping[node.func.attr]}',
+        )
+        yield ast_to_offset(node.func), func
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyupgrade-2.23.3/setup.cfg 
new/pyupgrade-2.24.0/setup.cfg
--- old/pyupgrade-2.23.3/setup.cfg      2021-08-04 19:50:42.000000000 +0200
+++ new/pyupgrade-2.24.0/setup.cfg      2021-08-20 00:33:53.000000000 +0200
@@ -1,6 +1,6 @@
 [metadata]
 name = pyupgrade
-version = 2.23.3
+version = 2.24.0
 description = A tool to automatically upgrade syntax for newer versions.
 long_description = file: README.md
 long_description_content_type = text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyupgrade-2.23.3/tests/features/unittest_aliases_test.py 
new/pyupgrade-2.24.0/tests/features/unittest_aliases_test.py
--- old/pyupgrade-2.23.3/tests/features/unittest_aliases_test.py        
1970-01-01 01:00:00.000000000 +0100
+++ new/pyupgrade-2.24.0/tests/features/unittest_aliases_test.py        
2021-08-20 00:33:53.000000000 +0200
@@ -0,0 +1,63 @@
+import pytest
+
+from pyupgrade._data import Settings
+from pyupgrade._main import _fix_plugins
+
+
+@pytest.mark.parametrize(
+    ('s',),
+    (
+        pytest.param(
+            'class ExampleTests:\n'
+            '    def test_something(self):\n'
+            '        self.assertEqual(1, 1)\n',
+            id='not a deprecated alias',
+        ),
+        pytest.param(
+            'class ExampleTests:\n'
+            '    def test_something(self):\n'
+            '        self.assertNotEquals(1, 2)\n',
+            id='not python 3+',
+        ),
+    ),
+)
+def test_fix_unittest_aliases_noop(s):
+    assert _fix_plugins(s, settings=Settings(min_version=(2, 7))) == s
+
+
+@pytest.mark.parametrize(
+    ('s', 'expected'),
+    (
+        (
+            'class ExampleTests:\n'
+            '    def test_something(self):\n'
+            '        self.assertEquals(1, 1)\n',
+
+            'class ExampleTests:\n'
+            '    def test_something(self):\n'
+            '        self.assertEqual(1, 1)\n',
+        ),
+    ),
+)
+def test_fix_unittest_aliases_py27(s, expected):
+    ret = _fix_plugins(s, settings=Settings(min_version=(2, 7)))
+    assert ret == expected
+
+
+@pytest.mark.parametrize(
+    ('s', 'expected'),
+    (
+        (
+            'class ExampleTests:\n'
+            '    def test_something(self):\n'
+            '        self.assertNotEquals(1, 2)\n',
+
+            'class ExampleTests:\n'
+            '    def test_something(self):\n'
+            '        self.assertNotEqual(1, 2)\n',
+        ),
+    ),
+)
+def test_fix_unittest_aliases_py3(s, expected):
+    ret = _fix_plugins(s, settings=Settings(min_version=(3,)))
+    assert ret == expected

Reply via email to