Made a couple of changes for readability and correctness in loaddata.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17055 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Ramiro Morales 2011-10-29 22:32:28 +00:00
parent 0a1a9b71fa
commit bebbc9e4a5
2 changed files with 18 additions and 6 deletions

View File

@ -62,7 +62,7 @@ class Command(BaseCommand):
fixture_object_count = 0 fixture_object_count = 0
models = set() models = set()
humanize = lambda dirname: dirname and "'%s'" % dirname or 'absolute path' humanize = lambda dirname: "'%s'" % dirname if dirname else 'absolute path'
# Get a cursor (even though we don't need one yet). This has # Get a cursor (even though we don't need one yet). This has
# the side effect of initializing the test database (if # the side effect of initializing the test database (if
@ -160,6 +160,11 @@ class Command(BaseCommand):
open_method = compression_types[compression_format] open_method = compression_types[compression_format]
try: try:
fixture = open_method(full_path, 'r') fixture = open_method(full_path, 'r')
except IOError:
if verbosity >= 2:
self.stdout.write("No %s fixture '%s' in %s.\n" % \
(format, fixture_name, humanize(fixture_dir)))
else:
if label_found: if label_found:
fixture.close() fixture.close()
self.stderr.write(self.style.ERROR("Multiple fixtures named '%s' in %s. Aborting.\n" % self.stderr.write(self.style.ERROR("Multiple fixtures named '%s' in %s. Aborting.\n" %
@ -232,11 +237,6 @@ class Command(BaseCommand):
transaction.leave_transaction_management(using=using) transaction.leave_transaction_management(using=using)
return return
except Exception, e:
if verbosity >= 2:
self.stdout.write("No %s fixture '%s' in %s.\n" % \
(format, fixture_name, humanize(fixture_dir)))
# If we found even one object in a fixture, we need to reset the # If we found even one object in a fixture, we need to reset the
# database sequences. # database sequences.
if loaded_object_count > 0: if loaded_object_count > 0:

View File

@ -405,6 +405,18 @@ class TestFixtures(TestCase):
stderr.getvalue(), 'No database fixture specified. Please provide the path of at least one fixture in the command line.\n' stderr.getvalue(), 'No database fixture specified. Please provide the path of at least one fixture in the command line.\n'
) )
def test_loaddata_not_existant_fixture_file(self):
stdout_output = StringIO()
management.call_command(
'loaddata',
'this_fixture_doesnt_exist',
verbosity=2,
commit=False,
stdout=stdout_output,
)
self.assertTrue("No xml fixture 'this_fixture_doesnt_exist' in" in
stdout_output.getvalue())
class NaturalKeyFixtureTests(TestCase): class NaturalKeyFixtureTests(TestCase):