[Python-modules-commits] [python-django] 01/03: Add 01_fix_test_loaddata_not_existant_fixture_file.patch to fix FTBFS with Python 3.4.2. Closes: #765117

Raphaël Hertzog hertzog at moszumanska.debian.org
Wed Oct 15 10:08:23 UTC 2014


This is an automated email from the git hooks/post-receive script.

hertzog pushed a commit to branch debian/sid
in repository python-django.

commit c3a87ac9fe2c27ea55285eb29477bb66c3dd7969
Author: Raphaël Hertzog <hertzog at debian.org>
Date:   Wed Oct 15 10:35:12 2014 +0200

    Add 01_fix_test_loaddata_not_existant_fixture_file.patch to fix FTBFS with Python 3.4.2. Closes: #765117
---
 debian/changelog                                   |   7 ++
 ...x_test_loaddata_not_existant_fixture_file.patch | 105 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 3 files changed, 113 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index e947ba4..5fcef00 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+python-django (1.7-3) UNRELEASED; urgency=medium
+
+  * Add 01_fix_test_loaddata_not_existant_fixture_file.patch
+    to fix FTBFS with Python 3.4.2. Closes: #765117
+
+ -- Raphaël Hertzog <hertzog at debian.org>  Wed, 15 Oct 2014 10:29:27 +0200
+
 python-django (1.7-2) unstable; urgency=medium
 
   * Release to unstable.
diff --git a/debian/patches/01_fix_test_loaddata_not_existant_fixture_file.patch b/debian/patches/01_fix_test_loaddata_not_existant_fixture_file.patch
new file mode 100644
index 0000000..dc539a6
--- /dev/null
+++ b/debian/patches/01_fix_test_loaddata_not_existant_fixture_file.patch
@@ -0,0 +1,105 @@
+Description: Fix failing test with Python 3.4.2
+ A bugfix in Python 3.4.2 revealed a bug in the Django test suite.
+ This patch fixes the test suite.
+Bug: https://code.djangoproject.com/ticket/23651
+Bug-Debian: http://bugs.debian.org/765117
+Origin: upstream, commit:c320a64e73e9e980c52aaf19a9830b75b6ed322d
+Author: Claude Paroz <claude at 2xlibre.net>
+
+diff --git a/tests/fixtures/tests.py b/tests/fixtures/tests.py
+index a15a6ae..533ea50 100644
+--- a/tests/fixtures/tests.py
++++ b/tests/fixtures/tests.py
+@@ -7,6 +7,7 @@ from django.contrib.sites.models import Site
+ from django.core import management
+ from django.db import connection, IntegrityError
+ from django.test import TestCase, TransactionTestCase, skipUnlessDBFeature
++from django.utils.encoding import force_text
+ from django.utils import six
+ 
+ from .models import Article, Book, Spy, Tag, Visa
+@@ -165,18 +166,6 @@ class FixtureLoadingTests(DumpDataAssertMixin, TestCase):
+             '<Book: Music for all ages by Artist formerly known as "Prince" and Django Reinhardt>'
+         ])
+ 
+-        # Loading a fixture that doesn't exist emits a warning
+-        with warnings.catch_warnings(record=True) as w:
+-            warnings.simplefilter("always")
+-            management.call_command('loaddata', 'unknown.json', verbosity=0)
+-        self.assertEqual(len(w), 1)
+-        self.assertTrue(w[0].message, "No fixture named 'unknown' found.")
+-
+-        # An attempt to load a nonexistent 'initial_data' fixture isn't an error
+-        with warnings.catch_warnings(record=True) as w:
+-            management.call_command('loaddata', 'initial_data.json', verbosity=0)
+-        self.assertEqual(len(w), 0)
+-
+         # object list is unaffected
+         self.assertQuerysetEqual(Article.objects.all(), [
+             '<Article: XML identified as leading cause of cancer>',
+@@ -396,6 +385,34 @@ class FixtureLoadingTests(DumpDataAssertMixin, TestCase):
+ <django-objects version="1.0"><object pk="1" model="fixtures.category"><field type="CharField" name="title">News Stories</field><field type="TextField" name="description">Latest news stories</field></object><object pk="2" model="fixtures.article"><field type="CharField" name="headline">Poker has no place on ESPN</field><field type="DateTimeField" name="pub_date">2006-06-16T12:00:00</field></object><object pk="3" model="fixtures.article"><field type="CharField" name="headline">Time to re [...]
+ 
+ 
++class NonExistentFixtureTests(TestCase):
++    """
++    Custom class to limit fixture dirs.
++    """
++    available_apps = ['django.contrib.auth', 'django.contrib.contenttypes']
++
++    def test_loaddata_not_existent_fixture_file(self):
++        stdout_output = six.StringIO()
++        with warnings.catch_warnings(record=True) as w:
++            warnings.simplefilter("always")
++            # With verbosity=2, we get both stdout output and warning
++            management.call_command(
++                'loaddata',
++                'this_fixture_doesnt_exist',
++                verbosity=2,
++                stdout=stdout_output,
++            )
++        self.assertTrue("No fixture 'this_fixture_doesnt_exist' in" in
++            force_text(stdout_output.getvalue()))
++        self.assertEqual(len(w), 1)
++        self.assertTrue(w[0].message, "No fixture named 'unknown' found.")
++
++        # An attempt to load a nonexistent 'initial_data' fixture doesn't produce any warning
++        with warnings.catch_warnings(record=True) as w:
++            management.call_command('loaddata', 'initial_data.json', verbosity=0)
++        self.assertEqual(len(w), 0)
++
++
+ class FixtureTransactionTests(DumpDataAssertMixin, TransactionTestCase):
+ 
+     available_apps = [
+diff --git a/tests/fixtures_regress/tests.py b/tests/fixtures_regress/tests.py
+index cc95a41..f8f13f8 100644
+--- a/tests/fixtures_regress/tests.py
++++ b/tests/fixtures_regress/tests.py
+@@ -17,7 +17,6 @@ from django.db.models import signals
+ from django.test import (TestCase, TransactionTestCase, skipIfDBFeature,
+     skipUnlessDBFeature)
+ from django.test import override_settings
+-from django.utils.encoding import force_text
+ from django.utils._os import upath
+ from django.utils import six
+ from django.utils.six import PY3, StringIO
+@@ -465,18 +464,6 @@ class TestFixtures(TestCase):
+                 verbosity=0,
+             )
+ 
+-    def test_loaddata_not_existant_fixture_file(self):
+-        stdout_output = StringIO()
+-        with warnings.catch_warnings(record=True):
+-            management.call_command(
+-                'loaddata',
+-                'this_fixture_doesnt_exist',
+-                verbosity=2,
+-                stdout=stdout_output,
+-            )
+-        self.assertTrue("No fixture 'this_fixture_doesnt_exist' in" in
+-            force_text(stdout_output.getvalue()))
+-
+     def test_ticket_20820(self):
+         """
+         Regression for ticket #20820 -- loaddata on a model that inherits
diff --git a/debian/patches/series b/debian/patches/series
index c73a668..1143f82 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
+01_fix_test_loaddata_not_existant_fixture_file.patch
 02_disable-sources-in-sphinxdoc.diff
 03_manpage.diff
 06_use_debian_geoip_database_as_default.diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-django.git



More information about the Python-modules-commits mailing list