Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-django-extensions for
openSUSE:Factory checked in at 2022-01-11 21:19:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-extensions (Old)
and /work/SRC/openSUSE:Factory/.python-django-extensions.new.1892 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-extensions"
Tue Jan 11 21:19:51 2022 rev:12 rq:945466 version:3.1.5
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-extensions/python-django-extensions.changes
2021-12-02 22:31:31.098384482 +0100
+++
/work/SRC/openSUSE:Factory/.python-django-extensions.new.1892/python-django-extensions.changes
2022-01-11 21:24:01.277159358 +0100
@@ -1,0 +2,22 @@
+Sun Jan 9 02:37:08 UTC 2022 - John Vandenberg <[email protected]>
+
+- Relax dependency on optional dependency pip to allow building on
+ Leap
+- Add pr_1698.patch for Django 4.0 support
+- Update to v3.1.5
+ * fix for removed get_installed_distributions function
+ * crude way slow down to avoid HTTPTooManyRequests
+ * ignore failing get_installed_distributions import for mypy
+- from v3.1.4
+ * Fix: set_default_site, improve django.contrib.sites application detection
+ * Improvement: documentation, Fix name of mixin in docs
+ * Improvement: mypy, type ignore backwards compatible imports
+ * Improvement: graph_models, add --rankdir to change graph direction
+ * Improvement: runserver_plus, Add --sql-truncate cli modifier
+ * Improvement: shell_plus, Add --sql-truncate cli modifier
+- from v3.1.3
+ * Fix: Django 3.2, Run tests against Django 3.2
+ * Fix: Django 3.2, Handle warnings for default_app_config (#1654)
+ * Fix: sqldiff, Fix for missing field/index in model case
+
+-------------------------------------------------------------------
Old:
----
django-extensions-3.1.3.tar.gz
New:
----
django-extensions-3.1.5.tar.gz
pr_1698.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-extensions.spec ++++++
--- /var/tmp/diff_new_pack.FMSqnj/_old 2022-01-11 21:24:01.777159710 +0100
+++ /var/tmp/diff_new_pack.FMSqnj/_new 2022-01-11 21:24:01.781159713 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-django-extensions
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,15 @@
%define skip_python2 1
-%global skip_python36 1
Name: python-django-extensions
-Version: 3.1.3
+Version: 3.1.5
Release: 0
Summary: Extensions for Django
License: BSD-3-Clause
URL: https://github.com/django-extensions/django-extensions
Source:
https://github.com/django-extensions/django-extensions/archive/%{version}.tar.gz#/django-extensions-%{version}.tar.gz
+# https://github.com/django-extensions/django-extensions/pull/1698
+Patch0: pr_1698.patch
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
Requires: python-Django >= 2.2
@@ -49,7 +50,7 @@
BuildRequires: %{python_module djangorestframework >= 3.0.0}
BuildRequires: %{python_module factory_boy}
BuildRequires: %{python_module mock}
-BuildRequires: %{python_module pip >= 20.1}
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module pydot}
BuildRequires: %{python_module pygraphviz}
BuildRequires: %{python_module pytest-django}
@@ -66,6 +67,7 @@
%prep
%setup -q -n django-extensions-%{version}
+%patch0 -p1
rm setup.cfg
# Most PipCheckerTests tests fail when using network to connect to PyPI
@@ -83,13 +85,14 @@
%check
export LANG=en_US.UTF-8
export DJANGO_SETTINGS_MODULE=tests.testapp.settings
+export PYTHONPATH=${PWD}
# test_should_colorize_noclasses_with_default_lexer - minor html output
differences
# test_no_models_dot_py fails to generate a .dot file
%pytest -rs -v -k 'not ((PipCheckerTests and not
test_pipchecker_when_requirements_file_does_not_exist) or
test_should_colorize_noclasses_with_default_lexer or test_no_models_dot_py)'
%files %{python_files}
%license LICENSE
-%doc README.rst docs/*.rst
-%{python_sitelib}/*
+%doc CHANGELOG.md README.rst docs/*.rst
+%{python_sitelib}/*django[-_]extensions*/
%changelog
++++++ django-extensions-3.1.3.tar.gz -> django-extensions-3.1.5.tar.gz ++++++
++++ 2416 lines of diff (skipped)
++++++ pr_1698.patch ++++++
>From e4465cc3b62e47a932555e7568db6fdfe852c8f0 Mon Sep 17 00:00:00 2001
From: Samuele Zanon <[email protected]>
Date: Fri, 7 Jan 2022 12:12:47 +0100
Subject: [PATCH 1/9] Convert smart_text in smart_str for Django 4.0
compatibility
---
django_extensions/management/commands/dumpscript.py | 4 ++--
django_extensions/management/commands/show_template_tags.py | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/django_extensions/management/commands/dumpscript.py
b/django_extensions/management/commands/dumpscript.py
index 086a8c81e..98392f4c5 100644
--- a/django_extensions/management/commands/dumpscript.py
+++ b/django_extensions/management/commands/dumpscript.py
@@ -41,7 +41,7 @@
)
from django.db.models.deletion import Collector
from django.utils import timezone
-from django.utils.encoding import force_str, smart_text
+from django.utils.encoding import force_str, smart_str
from django_extensions.management.utils import signalcommand
@@ -205,7 +205,7 @@ def get_imports(self):
Return a dictionary of import statements, with the variable being
defined as the key.
"""
- return {self.model.__name__: smart_text(self.model.__module__)}
+ return {self.model.__name__: smart_str(self.model.__module__)}
imports = property(get_imports)
def get_lines(self):
diff --git a/django_extensions/management/commands/show_template_tags.py
b/django_extensions/management/commands/show_template_tags.py
index 79561890e..399dd262e 100644
--- a/django_extensions/management/commands/show_template_tags.py
+++ b/django_extensions/management/commands/show_template_tags.py
@@ -8,7 +8,7 @@
from django.core.management import color
from django.core.management import BaseCommand
from django.utils import termcolors
-from django.utils.encoding import smart_text
+from django.utils.encoding import smart_str
from django_extensions.compat import load_tag_library
from django_extensions.management.color import _dummy_style_func
@@ -41,7 +41,7 @@ def format_block(block, nlspaces=0):
http://code.activestate.com/recipes/145672/
"""
# separate block into lines
- lines = smart_text(block).split('\n')
+ lines = smart_str(block).split('\n')
# remove leading/trailing empty lines
while lines and not lines[0]:
>From 057e12ba4c674ba204d505346e1c93e257a50597 Mon Sep 17 00:00:00 2001
From: Samuele Zanon <[email protected]>
Date: Fri, 7 Jan 2022 12:46:56 +0100
Subject: [PATCH 2/9] Fix urls test
---
tests/management/commands/test_show_urls.py | 8 ++++----
tests/testapp/urls.py | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/tests/management/commands/test_show_urls.py
b/tests/management/commands/test_show_urls.py
index 0d647ba84..45ef05f76 100644
--- a/tests/management/commands/test_show_urls.py
+++ b/tests/management/commands/test_show_urls.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from io import StringIO
-from django.conf.urls import url
+from django.urls import re_path
from django.core.management import CommandError, call_command
from django.http import HttpResponse
from django.test import TestCase
@@ -20,9 +20,9 @@ class ClassView(View):
urlpatterns = [
- url(r'lambda/view', lambda request: HttpResponse('OK')),
- url(r'function/based/', function_based_view, name='function-based-view'),
- url(r'class/based/', ClassView.as_view(), name='class-based-view'),
+ re_path(r'lambda/view', lambda request: HttpResponse('OK')),
+ re_path(r'function/based/', function_based_view,
name='function-based-view'),
+ re_path(r'class/based/', ClassView.as_view(), name='class-based-view'),
]
diff --git a/tests/testapp/urls.py b/tests/testapp/urls.py
index f6c2848e9..01845b724 100644
--- a/tests/testapp/urls.py
+++ b/tests/testapp/urls.py
@@ -16,7 +16,7 @@
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
-from django.conf.urls import url
+from django.urls import re_path
from django.contrib import admin
from django.contrib.auth import views as auth_views
@@ -24,7 +24,7 @@
logout_view = auth_views.LogoutView.as_view() if hasattr(auth_views,
'LogoutView') else auth_views.logout
urlpatterns = [
- url(r'^login/$', login_view, {'template_name': 'login.html'},
name="login"),
- url(r'^logout/$', logout_view, name="logout"),
- url(r'^admin/', admin.site.urls),
+ re_path(r'^login/$', login_view, {'template_name': 'login.html'},
name="login"),
+ re_path(r'^logout/$', logout_view, name="logout"),
+ re_path(r'^admin/', admin.site.urls),
]
>From ac0a03481a69109b4a0adec69780e0423befb37d Mon Sep 17 00:00:00 2001
From: Samuele Zanon <[email protected]>
Date: Fri, 7 Jan 2022 13:53:52 +0100
Subject: [PATCH 5/9] Fix test show urls for django 4.0
---
tests/management/commands/test_show_urls.py | 62 ++++++++++++++++-----
1 file changed, 49 insertions(+), 13 deletions(-)
diff --git a/tests/management/commands/test_show_urls.py
b/tests/management/commands/test_show_urls.py
index 45ef05f76..cafa34f88 100644
--- a/tests/management/commands/test_show_urls.py
+++ b/tests/management/commands/test_show_urls.py
@@ -7,6 +7,7 @@
from django.test import TestCase
from django.test.utils import override_settings
from django.views.generic.base import View
+from django import VERSION
from unittest.mock import Mock, patch
@@ -57,14 +58,23 @@ def
test_should_show_urls_unsorted_but_same_order_as_found_in_url_patterns(self,
lines = m_stdout.getvalue().splitlines()
self.assertIn('/lambda/view\ttests.management.commands.test_show_urls.<lambda>',
lines[0])
self.assertIn('/function/based/\ttests.management.commands.test_show_urls.function_based_view\tfunction-based-view',
lines[1])
-
self.assertIn('/class/based/\ttests.management.commands.test_show_urls.ClassView\tclass-based-view',
lines[2])
+
+ if VERSION >= (4, 0):
+
self.assertIn('/class/based/\ttests.management.commands.test_show_urls.view\tclass-based-view',
lines[2])
+ else:
+
self.assertIn('/class/based/\ttests.management.commands.test_show_urls.ClassView\tclass-based-view',
lines[2])
@patch('sys.stdout', new_callable=StringIO)
def test_should_show_urls_sorted_alphabetically(self, m_stdout):
call_command('show_urls', verbosity=3)
lines = m_stdout.getvalue().splitlines()
-
self.assertEqual('/class/based/\ttests.management.commands.test_show_urls.ClassView\tclass-based-view',
lines[0])
+
+ if VERSION >= (4, 0):
+
self.assertEqual('/class/based/\ttests.management.commands.test_show_urls.view\tclass-based-view',
lines[0])
+ else:
+
self.assertEqual('/class/based/\ttests.management.commands.test_show_urls.ClassView\tclass-based-view',
lines[0])
+
self.assertEqual('/function/based/\ttests.management.commands.test_show_urls.function_based_view\tfunction-based-view',
lines[1])
self.assertEqual('/lambda/view\ttests.management.commands.test_show_urls.<lambda>',
lines[2])
@@ -72,29 +82,45 @@ def test_should_show_urls_sorted_alphabetically(self,
m_stdout):
def test_should_show_urls_in_json_format(self, m_stdout):
call_command('show_urls', '--format=json')
- self.assertJSONEqual(m_stdout.getvalue(), [
+ json = [
{"url": "/lambda/view", "module":
"tests.management.commands.test_show_urls.<lambda>", "name": "", "decorators":
""},
- {"url": "/function/based/", "module":
"tests.management.commands.test_show_urls.function_based_view", "name":
"function-based-view", "decorators": ""},
- {"url": "/class/based/", "module":
"tests.management.commands.test_show_urls.ClassView", "name":
"class-based-view", "decorators": ""}
- ])
+ {"url": "/function/based/", "module":
"tests.management.commands.test_show_urls.function_based_view", "name":
"function-based-view", "decorators": ""}
+ ]
+
+ if VERSION >= (4, 0):
+ json.append({"url": "/class/based/", "module":
"tests.management.commands.test_show_urls.view", "name": "class-based-view",
"decorators": ""})
+ else:
+ json.append({"url": "/class/based/", "module":
"tests.management.commands.test_show_urls.ClassView", "name":
"class-based-view", "decorators": ""})
+
+ self.assertJSONEqual(m_stdout.getvalue(), json)
self.assertEqual(len(m_stdout.getvalue().splitlines()), 1)
@patch('sys.stdout', new_callable=StringIO)
def test_should_show_urls_in_pretty_json_format(self, m_stdout):
call_command('show_urls', '--format=pretty-json')
- self.assertJSONEqual(m_stdout.getvalue(), [
+ json = [
{"url": "/lambda/view", "module":
"tests.management.commands.test_show_urls.<lambda>", "name": "", "decorators":
""},
- {"url": "/function/based/", "module":
"tests.management.commands.test_show_urls.function_based_view", "name":
"function-based-view", "decorators": ""},
- {"url": "/class/based/", "module":
"tests.management.commands.test_show_urls.ClassView", "name":
"class-based-view", "decorators": ""}
- ])
+ {"url": "/function/based/", "module":
"tests.management.commands.test_show_urls.function_based_view", "name":
"function-based-view", "decorators": ""}
+ ]
+
+ if VERSION >= (4, 0):
+ json.append({"url": "/class/based/", "module":
"tests.management.commands.test_show_urls.view", "name": "class-based-view",
"decorators": ""})
+ else:
+ json.append({"url": "/class/based/", "module":
"tests.management.commands.test_show_urls.ClassView", "name":
"class-based-view", "decorators": ""})
+
+ self.assertJSONEqual(m_stdout.getvalue(), json)
self.assertEqual(len(m_stdout.getvalue().splitlines()), 20)
@patch('sys.stdout', new_callable=StringIO)
def test_should_show_urls_in_table_format(self, m_stdout):
call_command('show_urls', '--format=table')
- self.assertIn('/class/based/ |
tests.management.commands.test_show_urls.ClassView | class-based-view
|', m_stdout.getvalue())
+ if VERSION >= (4, 0):
+ self.assertIn('/class/based/ |
tests.management.commands.test_show_urls.view | class-based-view
|', m_stdout.getvalue())
+ else:
+ self.assertIn('/class/based/ |
tests.management.commands.test_show_urls.ClassView | class-based-view
|', m_stdout.getvalue())
+
self.assertIn('/function/based/ |
tests.management.commands.test_show_urls.function_based_view |
function-based-view |', m_stdout.getvalue())
self.assertIn('/lambda/view |
tests.management.commands.test_show_urls.<lambda> |
|', m_stdout.getvalue())
@@ -103,7 +129,12 @@ def test_should_show_urls_in_aligned_format(self,
m_stdout):
call_command('show_urls', '--format=aligned')
lines = m_stdout.getvalue().splitlines()
- self.assertEqual('/class/based/
tests.management.commands.test_show_urls.ClassView class-based-view
', lines[0])
+
+ if VERSION >= (4, 0):
+ self.assertEqual('/class/based/
tests.management.commands.test_show_urls.view class-based-view
', lines[0])
+ else:
+ self.assertEqual('/class/based/
tests.management.commands.test_show_urls.ClassView class-based-view
', lines[0])
+
self.assertEqual('/function/based/
tests.management.commands.test_show_urls.function_based_view
function-based-view ', lines[1])
self.assertEqual('/lambda/view
tests.management.commands.test_show_urls.<lambda>
', lines[2])
@@ -112,6 +143,11 @@ def test_should_show_urls_with_no_color_option(self,
m_stdout):
call_command('show_urls', '--no-color')
lines = m_stdout.getvalue().splitlines()
-
self.assertEqual('/class/based/\ttests.management.commands.test_show_urls.ClassView\tclass-based-view',
lines[0])
+
+ if VERSION >= (4, 0):
+
self.assertEqual('/class/based/\ttests.management.commands.test_show_urls.view\tclass-based-view',
lines[0])
+ else:
+
self.assertEqual('/class/based/\ttests.management.commands.test_show_urls.ClassView\tclass-based-view',
lines[0])
+
self.assertEqual('/function/based/\ttests.management.commands.test_show_urls.function_based_view\tfunction-based-view',
lines[1])
self.assertEqual('/lambda/view\ttests.management.commands.test_show_urls.<lambda>',
lines[2])
>From 3233a136342100dc6dbd7052884f83d5f4d1e10a Mon Sep 17 00:00:00 2001
From: Samuele Zanon <[email protected]>
Date: Fri, 7 Jan 2022 13:57:40 +0100
Subject: [PATCH 6/9] remove re_path with path in urls configurations
---
tests/management/commands/test_show_urls.py | 8 ++++----
tests/testapp/urls.py | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/tests/management/commands/test_show_urls.py
b/tests/management/commands/test_show_urls.py
index cafa34f88..2bf4cfbd8 100644
--- a/tests/management/commands/test_show_urls.py
+++ b/tests/management/commands/test_show_urls.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from io import StringIO
-from django.urls import re_path
+from django.urls import path
from django.core.management import CommandError, call_command
from django.http import HttpResponse
from django.test import TestCase
@@ -21,9 +21,9 @@ class ClassView(View):
urlpatterns = [
- re_path(r'lambda/view', lambda request: HttpResponse('OK')),
- re_path(r'function/based/', function_based_view,
name='function-based-view'),
- re_path(r'class/based/', ClassView.as_view(), name='class-based-view'),
+ path('lambda/view', lambda request: HttpResponse('OK')),
+ path('function/based/', function_based_view, name='function-based-view'),
+ path('class/based/', ClassView.as_view(), name='class-based-view'),
]
diff --git a/tests/testapp/urls.py b/tests/testapp/urls.py
index 01845b724..da1031ba3 100644
--- a/tests/testapp/urls.py
+++ b/tests/testapp/urls.py
@@ -16,7 +16,7 @@
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
-from django.urls import re_path
+from django.urls import path
from django.contrib import admin
from django.contrib.auth import views as auth_views
@@ -24,7 +24,7 @@
logout_view = auth_views.LogoutView.as_view() if hasattr(auth_views,
'LogoutView') else auth_views.logout
urlpatterns = [
- re_path(r'^login/$', login_view, {'template_name': 'login.html'},
name="login"),
- re_path(r'^logout/$', logout_view, name="logout"),
- re_path(r'^admin/', admin.site.urls),
+ path('login/', login_view, {'template_name': 'login.html'}, name="login"),
+ path('logout/', logout_view, name="logout"),
+ path('admin/', admin.site.urls),
]