Source code for cobra.test

from __future__ import with_statement, absolute_import
import sys
from os import name as __name
available_tests = ['unit_tests', 'solvers', 'flux_analysis']
#if not using jython then add the tests that don't currently run through jython
## if __name != 'java':
##      available_tests += ['flux_analysis']

del __name

from os.path import abspath as __abspath
from os.path import join as __join
from os.path import split as __split
from os.path import sep as __sep

cobra_directory = __abspath(__join(__split(__abspath(__file__))[0], ".."))
cobra_location = __abspath(__join(cobra_directory, ".."))
data_directory = __join(__split(__abspath(__file__))[0], "data")
if not data_directory.endswith(__sep):
    data_directory += __sep

salmonella_sbml = __join(data_directory, "salmonella.xml")
salmonella_pickle = __join(data_directory, "salmonella.pickle")
salmonella_reaction_p_values_pickle = __join(data_directory, "salmonella_reaction_p_values.pickle")
ecoli_sbml = __join(data_directory, "iJO1366.xml")
ecoli_pickle = __join(data_directory, "iJO1366.pickle")
ecoli_mat = __join(data_directory, "iJO1366.mat")
__test_pickles = {'Salmonella_enterica': salmonella_pickle,
                  'Escherichia_coli': ecoli_pickle}
__test_xml = {'Salmonella_enterica': salmonella_sbml,
              'Escherichia_coli': ecoli_sbml}
del __abspath, __join, __split, __sep

[docs]def create_test_model(test_pickle=salmonella_pickle): """Returns a cobra model for testing. The default model is the up to date version of the Salmonella enterica Typhimurium LT2 model published in Thiele et al. 2011 BMC Sys Bio 5:8 test_pickle: The complete file name of a pickled cobra.Model or SBML XML file to be read. We currently provide Salmonella enterica Typhimurium and Escherichia coli models whose paths are stored in cobra.test.salmonella_pickle and cobra.test.ecoli_pickle, respectively. The ecoli model is a variant of the model published in Orth et al. 2011 Mol Syst Biol 7:535 """ from os import name as __name try: from cPickle import load except: from pickle import load try: with open(test_pickle, "rb") as infile: model = load(infile) except: #if the pickle can't be loaded then load the sbml xml sys.path.insert(0, cobra_location) from cobra.io import read_sbml_model model = read_sbml_model(salmonella_sbml) sys.path.pop(0) return model
[docs]def create_test_suite(): """create a unittest.TestSuite with available tests""" from unittest import TestLoader, TestSuite loader = TestLoader() suite = TestSuite() for test_name in available_tests: exec("from . import " + test_name) suite.addTests(loader.loadTestsFromModule(eval(test_name))) return suite
suite = create_test_suite()
[docs]def test_all(): """###running unit tests on cobra py###""" from unittest import TextTestRunner TextTestRunner(verbosity=2).run(create_test_suite())