def testWeightDB(self): #test setup class DummyCallback(): def __init__(self): self.entries = [] def __call__(self, weight, extra): self.entries.append((weight, extra)) expected_weights = expected_weights_results() expected_extra = expected_extra_results() weight_db = WeightDBUtilities.WeightDB("tests/_td/test.db") #load gene data extra = weight_db.loadExtraColumnData("A") self.assertExtra(extra, [expected_extra[0]]) extra = weight_db.loadExtraColumnData("B") self.assertExtra(extra, [expected_extra[1]]) extra = weight_db.loadExtraColumnData("C") self.assertExtra(extra, [expected_extra[2]]) extra = weight_db.loadExtraColumnData("D") self.assertExtra(extra, [expected_extra[3]]) extra = weight_db.loadExtraColumnData() self.assertExtra(extra, expected_extra) #load db callback = DummyCallback() weights = weight_db.loadFromDB(callback, "A") self.assertWeights( weights, [expected_weights[0], expected_weights[1], expected_weights[2]]) self.assertEqual(len(callback.entries), 3) callback_weights = [e[0] for e in callback.entries] self.assertEqual(callback_weights, weights) callback = DummyCallback() weights = weight_db.loadFromDB(callback, "B") self.assertWeights(weights, [expected_weights[3], expected_weights[4]]) self.assertEqual(len(callback.entries), 2) callback_weights = [e[0] for e in callback.entries] self.assertEqual(callback_weights, weights) callback = DummyCallback() weights = weight_db.loadFromDB(callback, "C") self.assertWeights(weights, [expected_weights[5]]) self.assertEqual(len(callback.entries), 1) callback_weights = [e[0] for e in callback.entries] self.assertEqual(callback_weights, weights) callback = DummyCallback() weights = weight_db.loadFromDB(callback, "D") self.assertWeights(weights, [expected_weights[6]]) self.assertEqual(len(callback.entries), 1) callback_weights = [e[0] for e in callback.entries] self.assertEqual(callback_weights, weights) callback = DummyCallback() weights = weight_db.loadFromDB(callback) self.assertWeights(weights, expected_weights) self.assertEqual(len(callback.entries), 7) callback_weights = [e[0] for e in callback.entries] self.assertEqual(callback_weights, weights) #gene names gene_names = weight_db.loadGeneNamesFromDB() self.assertEqual(gene_names, ["A", "B", "C", "D"])
def testWeightDBInvalidPath(self): weight_db = WeightDBUtilities.WeightDB("tests/kk.db") with self.assertRaises(RuntimeError): weight_db.openDBIfNecessary()