summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrandon Taylor <alsoicode@gmail.com>2014-10-07 13:53:19 -0400
committerTim Graham <timograham@gmail.com>2014-10-09 14:58:20 -0400
commit16ed35fafc0583b485a0289afda632f8261ecc96 (patch)
tree1a5dc1b66304aa1f8278e8a851575f488b8fdc30
parent92a17eaae081a213171b044858d6fc29df2df733 (diff)
Fixed #23612 -- Normalized fixuture paths to allow referencing relative paths on Windows.
-rw-r--r--django/core/management/commands/loaddata.py2
-rw-r--r--tests/fixtures_regress/tests.py12
2 files changed, 13 insertions, 1 deletions
diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py
index 9cd5a232fd..05cf769489 100644
--- a/django/core/management/commands/loaddata.py
+++ b/django/core/management/commands/loaddata.py
@@ -186,7 +186,7 @@ class Command(BaseCommand):
fixture_name = os.path.basename(fixture_name)
else:
fixture_dirs = self.fixture_dirs
- if os.path.sep in fixture_name:
+ if os.path.sep in os.path.normpath(fixture_name):
fixture_dirs = [os.path.join(dir_, os.path.dirname(fixture_name))
for dir_ in fixture_dirs]
fixture_name = os.path.basename(fixture_name)
diff --git a/tests/fixtures_regress/tests.py b/tests/fixtures_regress/tests.py
index c01411e158..cc95a41b10 100644
--- a/tests/fixtures_regress/tests.py
+++ b/tests/fixtures_regress/tests.py
@@ -857,3 +857,15 @@ class TestTicket11101(TransactionTestCase):
self.assertEqual(Thingy.objects.count(), 1)
transaction.set_rollback(True)
self.assertEqual(Thingy.objects.count(), 0)
+
+
+class TestLoadFixtureFromOtherAppDirectory(TestCase):
+ """
+ #23612 -- fixtures path should be normalized to allow referencing relative
+ paths on Windows.
+ """
+ fixtures = ['fixtures_regress/fixtures/absolute.json']
+
+ def test_fixtures_loaded(self):
+ count = Absolute.objects.count()
+ self.assertGreater(count, 0, "Fixtures not loaded properly.")