1
0
mirror of https://github.com/django/django.git synced 2025-10-24 14:16:09 +00:00

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.
This commit is contained in:
Claude Paroz
2013-12-05 22:55:33 +01:00
parent 8a9c8bb907
commit 41ebc4838d
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 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',
@@ -424,8 +429,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):