From 384d241ab2752a0b92c9a845e6a7ebfac1f26012 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 8 Oct 2012 01:38:54 -0400 Subject: [PATCH] Capture load data management command errors --- apps/bootstrap/models.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/apps/bootstrap/models.py b/apps/bootstrap/models.py index d34404ef07..cb02b8d3a9 100644 --- a/apps/bootstrap/models.py +++ b/apps/bootstrap/models.py @@ -3,6 +3,11 @@ from __future__ import absolute_import import os import tempfile +try: + from cStringIO import StringIO +except ImportError: + from StringIO import StringIO + from django.db import models from django.utils.translation import ugettext_lazy as _ from django.core import management @@ -38,9 +43,19 @@ class BootstrapSetup(models.Model): filepath = os.path.extsep.join([filepath, self.get_extension()]) with open(filepath, 'w') as file_handle: - file_handle.write(self.fixture) + for line in self.fixture.splitlines(True): + if line.startswith('#'): + pass + else: + file_handle.write(line) + + content = StringIO() + management.call_command(COMMAND_LOADDATA, filepath, verbosity=0, stderr=content) + content.seek(0, os.SEEK_END) + if content.tell(): + content.seek(0) + raise Exception(content.readlines()[-2]) - management.call_command(COMMAND_LOADDATA, filepath, verbosity=0) os.unlink(filepath) def compress(self):