summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2014-12-21 14:24:15 +0100
committerClaude Paroz <claude@2xlibre.net>2014-12-23 16:01:39 +0100
commit9fecb86a5221982ea753270b7d2b4c6487f79941 (patch)
tree31036c54c7eafb51f8725b323f4f6d6d81b9af02 /tests
parent227a4c48be18a439f0a08a49bf1f3062babeee82 (diff)
Fixed #17946 -- Fixed deserialization of self-referencing M2M fields
Thanks Philip Mountifield for the report and excellent analysis, and Simon Charette for the review.
Diffstat (limited to 'tests')
-rw-r--r--tests/fixtures_regress/fixtures/m2mtoself.json1
-rw-r--r--tests/fixtures_regress/models.py4
-rw-r--r--tests/fixtures_regress/tests.py10
3 files changed, 15 insertions, 0 deletions
diff --git a/tests/fixtures_regress/fixtures/m2mtoself.json b/tests/fixtures_regress/fixtures/m2mtoself.json
new file mode 100644
index 0000000000..b904ba36e0
--- /dev/null
+++ b/tests/fixtures_regress/fixtures/m2mtoself.json
@@ -0,0 +1 @@
+[{"fields": {"parent": [1]}, "model": "fixtures_regress.m2mtoself", "pk": 1}]
diff --git a/tests/fixtures_regress/models.py b/tests/fixtures_regress/models.py
index f75b1e02d0..cd381e92bd 100644
--- a/tests/fixtures_regress/models.py
+++ b/tests/fixtures_regress/models.py
@@ -248,6 +248,10 @@ class Thingy(models.Model):
name = models.CharField(max_length=255)
+class M2MToSelf(models.Model):
+ parent = models.ManyToManyField("self", blank=True, null=True)
+
+
@python_2_unicode_compatible
class BaseNKModel(models.Model):
"""
diff --git a/tests/fixtures_regress/tests.py b/tests/fixtures_regress/tests.py
index 89b8fb17ef..a91935af8f 100644
--- a/tests/fixtures_regress/tests.py
+++ b/tests/fixtures_regress/tests.py
@@ -487,6 +487,16 @@ class TestFixtures(TestCase):
verbosity=0,
)
+ def test_loaddata_with_m2m_to_self(self):
+ """
+ Regression test for ticket #17946.
+ """
+ management.call_command(
+ 'loaddata',
+ 'm2mtoself.json',
+ verbosity=0,
+ )
+
@override_settings(FIXTURE_DIRS=[os.path.join(_cur_dir, 'fixtures_1'),
os.path.join(_cur_dir, 'fixtures_1')])
def test_fixture_dirs_with_duplicates(self):