示例#1
0
 def _get_formula_class(self, formula):
     """
     get a formula class object if it exists, else
     create one, add it to the dict, and pass return it.
     """
     # recursive import otherwise
     from sprinter.formula.base import FormulaBase
     if formula in LEGACY_MAPPINGS:
         formula = LEGACY_MAPPINGS[formula]
     formula_class, formula_url = formula, None
     if ':' in formula:
         formula_class, formula_url = formula.split(":", 1)
     if formula_class not in self._formula_dict:
         try:
             self._formula_dict[
                 formula_class] = lib.get_subclass_from_module(
                     formula_class, FormulaBase)
         except (SprinterException, ImportError):
             logger.info("Downloading %s..." % formula_class)
             try:
                 self._pip.install_egg(formula_url or formula_class)
                 try:
                     self._formula_dict[
                         formula_class] = lib.get_subclass_from_module(
                             formula_class, FormulaBase)
                 except ImportError:
                     logger.debug("FeatureDict import Error",
                                  exc_info=sys.exc_info())
                     raise SprinterException(
                         "Error: Unable to retrieve formula %s!" %
                         formula_class)
             except PipException:
                 logger.error("ERROR: Unable to download %s!" %
                              formula_class)
     return self._formula_dict[formula_class]
示例#2
0
 def _get_formula_class(self, formula):
     """
     get a formula class object if it exists, else
     create one, add it to the dict, and pass return it.
     """
     # recursive import otherwise
     from sprinter.formula.base import FormulaBase
     if formula in LEGACY_MAPPINGS:
         formula = LEGACY_MAPPINGS[formula]
     formula_class, formula_url = formula, None
     if ':' in formula:
         formula_class, formula_url = formula.split(":", 1)
     if formula_class not in self._formula_dict:
         try:
             self._formula_dict[formula_class] = lib.get_subclass_from_module(formula_class, FormulaBase)
         except (SprinterException, ImportError):
             logger.info("Downloading %s..." % formula_class)
             try:
                 self._pip.install_egg(formula_url or formula_class)
                 try:
                     self._formula_dict[formula_class] = lib.get_subclass_from_module(formula_class, FormulaBase)
                 except ImportError:
                     logger.debug("FeatureDict import Error", exc_info=sys.exc_info())
                     raise SprinterException("Error: Unable to retrieve formula %s!" % formula_class)
             except PipException:
                 logger.error("ERROR: Unable to download %s!" % formula_class)
     return self._formula_dict[formula_class]
示例#3
0
 def skip_get_formula_class_correct_import(self):
     """ This test a bug with importing the proper class"""
     class_object = lib.get_subclass_from_module("sprinter.formula.env", FormulaBase)
     assert class_object == EnvFormula, \
         "%s class is not equal to %s" % (class_object, EnvFormula)
示例#4
0
 def test_get_formulabase(self):
     """ Test if formulabase can be grabbed"""
     class_object = lib.get_subclass_from_module("sprinter.formula.base",
                                                 FormulaBase)
     assert issubclass(class_object, FormulaBase)
示例#5
0
 def test_get_formula_class(self):
     """ Test if a formula class is grabbed """
     class_object = lib.get_subclass_from_module("sprinter.formula.unpack",
                                                 FormulaBase)
     assert issubclass(class_object, FormulaBase)
示例#6
0
 def skip_get_formula_class_correct_import(self):
     """ This test a bug with importing the proper class"""
     class_object = lib.get_subclass_from_module("sprinter.formula.env", FormulaBase)
     assert class_object == EnvFormula, \
         "%s class is not equal to %s" % (class_object, EnvFormula)
示例#7
0
 def test_get_formulabase(self):
     """ Test if formulabase can be grabbed"""
     class_object = lib.get_subclass_from_module("sprinter.formula.base",
                                                 FormulaBase)
     assert issubclass(class_object, FormulaBase)
示例#8
0
 def test_get_formula_class(self):
     """ Test if a formula class is grabbed """
     class_object = lib.get_subclass_from_module("sprinter.formula.unpack",
                                                 FormulaBase)
     assert issubclass(class_object, FormulaBase)