Let's say you have something like:
{{{
class BaseTestCase(TestCase):
fixtures = ['basic_data.json']
class NoFixturesTestCase(BaseTestCase):
fixtures = []
}}}
If you do this you will get this error:
{{{
Traceback (most recent call last):
File "/home/lgs/proyectos/personal/django/django/test/testcases.py",
line 173, in __call__
self._pre_setup()
File "/home/lgs/proyectos/personal/django/django/test/testcases.py",
line 716, in _pre_setup
self._fixture_setup()
File "/home/lgs/proyectos/personal/django/django/test/testcases.py",
line 848, in _fixture_setup
'skip_validation': True,
File
"/home/lgs/proyectos/personal/django/django/core/management/__init__.py",
line 159, in call_command
return klass.execute(*args, **defaults)
File
"/home/lgs/proyectos/personal/django/django/core/management/base.py", line
289, in execute
output = self.handle(*args, **options)
File
"/home/lgs/proyectos/personal/django/django/core/management/commands/loaddata.py",
line 49, in handle
"No database fixture specified. Please provide the path "
CommandError: No database fixture specified. Please provide the path of at
least one fixture in the command line.
}}}
You can use this hack as a workaround:
{{{
class NoFixturesTestCase(BaseTestCase):
fixtures = ['non-existing-file.json']
}}}
And now you will get a warning instead of an error.
I'll create a Github branch with a test showing this behaviour and a fix
for it.
--
Ticket URL: <https://code.djangoproject.com/ticket/21089>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Comment:
Is this problem solved by setting `fixtures = None`?
--
Ticket URL: <https://code.djangoproject.com/ticket/21089#comment:1>
Comment (by lgs):
No, it is not solved by setting fixtures = None
The Github branch with the testcase to reproduce this error and the fix is
located at: https://github.com/lorenzogil/django/compare/ticket_21089
--
Ticket URL: <https://code.djangoproject.com/ticket/21089#comment:2>
* has_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/21089#comment:3>
* needs_better_patch: 0 => 1
* stage: Unreviewed => Accepted
Comment:
This looks useful, but I have some questions about the patch.
Is there a particular reason that we're using `getattr` instead of simply
defining a `fixtures` attribute on `TransactionTestCase` (see attached
diff)?
--
Ticket URL: <https://code.djangoproject.com/ticket/21089#comment:4>
Comment (by lgs):
I don't know about the reasons behind getattr. That code was there before,
I just added an extra check.
--
Ticket URL: <https://code.djangoproject.com/ticket/21089#comment:5>
* status: new => closed
* resolution: => fixed
Comment:
In [changeset:"abb10db06fb2ecb3e897462ec72417d10b39b8a4"]:
{{{
#!CommitTicketReference repository=""
revision="abb10db06fb2ecb3e897462ec72417d10b39b8a4"
Fixed #21089 -- Allow TransactionTestcase subclasses to define an empty
list of fixtures.
Thanks to lgs for the report and initial patch.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/21089#comment:6>
Comment (by lgs):
Thanks for fixing this so fast :-)
--
Ticket URL: <https://code.djangoproject.com/ticket/21089#comment:7>