Reputation: 1517
I'm trying to load some fixtures within my Django tests, but they don't seem to load.
In my settings.py, I specify:
FIXTURE_DIRS = (os.path.join(PROJECT_DIR, 'dhtmlScheduler\\fixtures\\'))
Now, within my test case:
def setUp(self):
fixtures = ['users.json', 'employee.json']
I should also probably mention that I'm using the Nose test runner:
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
and unittest:
class TestEmployee(unittest.TestCase):
I must be missing something obvious, can someone point me in the right direction?
Upvotes: 3
Views: 5209
Reputation: 3591
In your test case file, Simply make reference to your predefined fixtures in this manner as shown below
Upvotes: 0
Reputation: 77902
FIXTURE_DIRS is supposed to be a list or tuple, not a string. Remember that it's the comma that defines a tuple litteral, not the parens, IOW your settings should be
FIXTURE_DIRS = (
os.path.join(PROJECT_DIR, 'dhtmlScheduler\\fixtures\\'),
)
As a side note, hardcoding the path separator kind of defeats the whole point of using os.path.join(), so this should really be:
FIXTURE_DIRS = (
os.path.join(PROJECT_DIR, 'dhtmlScheduler', 'fixtures'),
)
Edit : and finally, you have to declare your TestCase fixtures at the class level, not in the setUp() method...
Upvotes: 9
Reputation: 22808
FIXTURE_DIRS = (os.path.join(PROJECT_ROOT, 'fixtures'),)
Or
from django.test import TestCase
class MyTestCase(TestCase):
fixtures = [
'/myapp/fixtures/users.json',
'/myapp/fixtures/employee.json'
]
Upvotes: 1