Ejemplo n.º 1
0
 def setUp(self):
     super(DataModelLoaderUnitTests, self).setUp()
     self.core_loader = IndivoDataModelLoader(
         settings.CORE_DATAMODEL_DIRS[0])
     self.test_dir = os.path.join(settings.APP_HOME,
                                  'indivo/tests/data_models/test')
     self.test_loader = IndivoDataModelLoader(self.test_dir)
Ejemplo n.º 2
0
 def unload_model_dir(self, dirpath):
     """ Unload data models that have been loaded from a directory."""
     loader = IndivoDataModelLoader(dirpath)
     models = [
         model_class
         for model_name, model_class in loader.discover_data_models()
     ]
     self.unload_models(models)
Ejemplo n.º 3
0
 def load_model_dir(self, dirpath):
     """ Load data models from a directory (like we do when running Indivo normally). """
     loader = IndivoDataModelLoader(dirpath)
     models = [
         model_class
         for model_name, model_class in loader.discover_data_models()
     ]
     self.load_models(models)
     return models
Ejemplo n.º 4
0
    def load_models(self, models):
        """ Do the heavy lifting for loading data models.
        
        Registers the models, then migrates the DB to support them.

        """

        loader = IndivoDataModelLoader('')
        for m in models:

            # Register the model in indivo.models
            loader.add_model_to_module(m.__name__, m, self.TEST_MODEL_MODULE)

            # Migrate the database to contain the model
            db.start_transaction()
            try:
                self.create_db_model(m)
            except Exception, e:
                db.rollback_transaction()
            else:
                db.commit_transaction()