diff options
| author | Claude Paroz <claude@2xlibre.net> | 2014-12-21 14:24:15 +0100 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2014-12-23 16:01:39 +0100 |
| commit | 9fecb86a5221982ea753270b7d2b4c6487f79941 (patch) | |
| tree | 31036c54c7eafb51f8725b323f4f6d6d81b9af02 /tests | |
| parent | 227a4c48be18a439f0a08a49bf1f3062babeee82 (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.json | 1 | ||||
| -rw-r--r-- | tests/fixtures_regress/models.py | 4 | ||||
| -rw-r--r-- | tests/fixtures_regress/tests.py | 10 |
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): |
