1
0
mirror of https://github.com/django/django.git synced 2025-10-30 17:16:10 +00:00

[1.6.x] Fixed #21551 -- Reenabled loading fixtures from subdirectory

This was a regression in Django 1.6 that was only partially
restored in 839940f27f.
Thanks Jonas Haag for the report.
Backport of 41ebc4838d from master.
This commit is contained in:
Claude Paroz
2013-12-05 22:55:33 +01:00
parent 34c4b93c84
commit 45c0d2e1ce
4 changed files with 26 additions and 9 deletions

View File

@@ -0,0 +1,9 @@
[
{
"pk": "1",
"model": "fixtures_regress.absolute",
"fields": {
"name": "Load Absolute Path Test"
}
}
]

View File

@@ -2,6 +2,7 @@
# Unittests for fixtures.
from __future__ import absolute_import, unicode_literals
import json
import os
import re
import warnings
@@ -19,12 +20,13 @@ 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
import json
from .models import (Animal, Stuff, Absolute, Parent, Child, Article, Widget,
Store, Person, Book, NKChild, RefToNKChild, Circle1, Circle2, Circle3,
ExternalDependency, Thingy)
_cur_dir = os.path.dirname(os.path.abspath(upath(__file__)))
class TestFixtures(TestCase):
@@ -150,12 +152,11 @@ class TestFixtures(TestCase):
)
self.assertEqual(Absolute.objects.count(), 1)
def test_relative_path(self):
directory = os.path.dirname(upath(__file__))
relative_path = os.path.join('fixtures', 'absolute.json')
def test_relative_path(self, path=['fixtures', 'absolute.json']):
relative_path = os.path.join(*path)
cwd = os.getcwd()
try:
os.chdir(directory)
os.chdir(_cur_dir)
management.call_command(
'loaddata',
relative_path,
@@ -165,6 +166,10 @@ class TestFixtures(TestCase):
os.chdir(cwd)
self.assertEqual(Absolute.objects.count(), 1)
@override_settings(FIXTURE_DIRS=[os.path.join(_cur_dir, 'fixtures_1')])
def test_relative_path_in_fixture_dirs(self):
self.test_relative_path(path=['inner', 'absolute.json'])
def test_path_containing_dots(self):
management.call_command(
'loaddata',
@@ -412,8 +417,6 @@ class TestFixtures(TestCase):
verbosity=0,
)
_cur_dir = os.path.dirname(os.path.abspath(upath(__file__)))
@override_settings(FIXTURE_DIRS=[os.path.join(_cur_dir, 'fixtures_1'),
os.path.join(_cur_dir, 'fixtures_2')])
def test_loaddata_forward_refs_split_fixtures(self):