Django

Code

Changeset 9528

Show
Ignore:
Timestamp:
11/24/08 15:13:33 (2 months ago)
Author:
jacob
Message:

Fixed a bug introduced by [9527] -- empty/invalid fixtures were no longer being reported.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/management/commands/loaddata.py

    r9527 r9528  
    133133                            else: 
    134134                                fixture_count += 1 
     135                                objects_in_fixture = 0 
    135136                                if verbosity > 0: 
    136137                                    print "Installing %s fixture '%s' from %s." % \ 
     
    139140                                    objects = serializers.deserialize(format, fixture) 
    140141                                    for obj in objects: 
    141                                         object_count += 1 
     142                                        objects_in_fixture += 1 
    142143                                        models.add(obj.object.__class__) 
    143144                                        obj.save() 
     145                                    object_count += objects_in_fixture 
    144146                                    label_found = True 
    145147                                except (SystemExit, KeyboardInterrupt): 
     
    159161                                    return 
    160162                                fixture.close() 
     163                                 
     164                                # If the fixture we loaded contains 0 objects, assume that an 
     165                                # error was encountered during fixture loading. 
     166                                if objects_in_fixture == 0: 
     167                                    sys.stderr.write( 
     168                                        self.style.ERROR("No fixture data found for '%s'. (File format may be invalid.)" % 
     169                                            (fixture_name))) 
     170                                    transaction.rollback() 
     171                                    transaction.leave_transaction_management() 
     172                                    return 
     173                                 
    161174                        except Exception, e: 
    162175                            if verbosity > 1: