[1.6.x] Fixed #20933 -- Allowed loaddata to load fixtures from relative paths.
Backport of 6e846f7627
from master.
This commit is contained in:
parent
b189169ed0
commit
12d364a9b0
|
@ -181,7 +181,7 @@ class Command(BaseCommand):
|
|||
if self.verbosity >= 2:
|
||||
self.stdout.write("Loading '%s' fixtures..." % fixture_name)
|
||||
|
||||
if os.path.isabs(fixture_name):
|
||||
if os.path.sep in fixture_name:
|
||||
fixture_dirs = [os.path.dirname(fixture_name)]
|
||||
fixture_name = os.path.basename(fixture_name)
|
||||
else:
|
||||
|
|
|
@ -90,8 +90,8 @@ fixtures. You can set the :setting:`FIXTURE_DIRS` setting to a list of
|
|||
additional directories where Django should look.
|
||||
|
||||
When running :djadmin:`manage.py loaddata <loaddata>`, you can also
|
||||
specify an absolute path to a fixture file, which overrides searching
|
||||
the usual directories.
|
||||
specify a path to a fixture file, which overrides searching the usual
|
||||
directories.
|
||||
|
||||
.. seealso::
|
||||
|
||||
|
|
|
@ -39,12 +39,6 @@ class Stuff(models.Model):
|
|||
class Absolute(models.Model):
|
||||
name = models.CharField(max_length=40)
|
||||
|
||||
load_count = 0
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(Absolute, self).__init__(*args, **kwargs)
|
||||
Absolute.load_count += 1
|
||||
|
||||
|
||||
class Parent(models.Model):
|
||||
name = models.CharField(max_length=10)
|
||||
|
|
|
@ -148,7 +148,22 @@ class TestFixtures(TestCase):
|
|||
load_absolute_path,
|
||||
verbosity=0,
|
||||
)
|
||||
self.assertEqual(Absolute.load_count, 1)
|
||||
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')
|
||||
cwd = os.getcwd()
|
||||
try:
|
||||
os.chdir(directory)
|
||||
management.call_command(
|
||||
'loaddata',
|
||||
relative_path,
|
||||
verbosity=0,
|
||||
)
|
||||
finally:
|
||||
os.chdir(cwd)
|
||||
self.assertEqual(Absolute.objects.count(), 1)
|
||||
|
||||
def test_unknown_format(self):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue