summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Apolloner <florian@apolloner.eu>2013-08-20 19:03:33 +0200
committerAndrew Godwin <andrew@aeracode.org>2013-08-21 22:32:04 +0100
commit839940f27f25c2dafaa5b2ec934c2dd6b80903e8 (patch)
tree7199a10975970768d4a1a8ab3478ea7f09b42d2b
parent1db5fce1eee27cb260b47d3c631ee8f8d02de8c2 (diff)
Fixed #20933 -- Allowed loaddata to load fixtures from relative paths.
-rw-r--r--django/core/management/commands/loaddata.py2
-rw-r--r--docs/howto/initial-data.txt4
-rw-r--r--tests/fixtures_regress/models.py6
-rw-r--r--tests/fixtures_regress/tests.py17
4 files changed, 19 insertions, 10 deletions
diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py
index 0da36a3c52..a6e22d9173 100644
--- a/django/core/management/commands/loaddata.py
+++ b/django/core/management/commands/loaddata.py
@@ -183,7 +183,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:
diff --git a/docs/howto/initial-data.txt b/docs/howto/initial-data.txt
index b86aaa834e..70d1ae18a6 100644
--- a/docs/howto/initial-data.txt
+++ b/docs/howto/initial-data.txt
@@ -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::
diff --git a/tests/fixtures_regress/models.py b/tests/fixtures_regress/models.py
index ab4fb8750c..4b33cef09b 100644
--- a/tests/fixtures_regress/models.py
+++ b/tests/fixtures_regress/models.py
@@ -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)
diff --git a/tests/fixtures_regress/tests.py b/tests/fixtures_regress/tests.py
index e2985d3350..334aa6cadc 100644
--- a/tests/fixtures_regress/tests.py
+++ b/tests/fixtures_regress/tests.py
@@ -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):
"""