From aa2797aff6915e4a9cbff0114dfb0742055c7524 Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Wed, 27 May 2009 23:21:42 +0000 Subject: [PATCH] Add a minimal test case to test a small bit of the django app. (I needed to figure out how to do testing for django). there's a tool nosedjango from http://hg.assembla.com/nosedjango that adds auto-detection of the django settings file to nose. I needed to modify it for our app though. --- htsworkflow/frontend/samples/tests.py | 102 ++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 htsworkflow/frontend/samples/tests.py diff --git a/htsworkflow/frontend/samples/tests.py b/htsworkflow/frontend/samples/tests.py new file mode 100644 index 0000000..9e8a2a3 --- /dev/null +++ b/htsworkflow/frontend/samples/tests.py @@ -0,0 +1,102 @@ +import datetime +import unittest +from htsworkflow.frontend.samples.models import \ + Affiliation, \ + ExperimentType, \ + Species, \ + Library + +# The django test runner flushes the database between test suites not cases, +# so to be more compatible with running via nose we flush the database tables +# of interest before creating our sample data. +def create_db(obj): + Species.objects.all().delete() + obj.species_human = Species( + scientific_name = 'Homo Sapeins', + common_name = 'human', + ) + obj.species_human.save() + obj.species_worm = Species( + scientific_name = 'C. Elegans', + common_name = 'worm', + ) + obj.species_worm.save() + obj.species_phix = Species( + scientific_name = 'PhiX', + common_name = 'PhiX' + ) + obj.species_phix.save() + + ExperimentType.objects.all().delete() + obj.experiment_de_novo = ExperimentType( + name = 'De Novo', + ) + obj.experiment_de_novo.save() + obj.experiment_chip_seq = ExperimentType( + name = 'ChIP-Seq' + ) + obj.experiment_chip_seq.save() + obj.experiment_rna_seq = ExperimentType( + name = 'RNA-Seq' + ) + obj.experiment_rna_seq.save() + + Affiliation.objects.all().delete() + obj.affiliation_alice = Affiliation( + name = 'Alice', + contact = 'Lab Boss', + email = 'alice@some.where.else.' + ) + obj.affiliation_alice.save() + obj.affiliation_bob = Affiliation( + name = 'Bob', + contact = 'Other Lab Boss', + email = 'bob@some.where.else', + ) + obj.affiliation_bob.save() + + Library.objects.all().delete() + obj.library_10001 = Library( + library_id = 10001, + library_name = 'C2C12 named poorly', + library_species = obj.species_human, + experiment_type = obj.experiment_rna_seq, + creation_date = datetime.datetime.now(), + made_for = 'scientist unit 2007', + made_by = 'microfludics system 7321', + stopping_point = '2A', + undiluted_concentration = '5.01', + ) + obj.library_10001.save() + obj.library_10002 = Library( + library_id = 10002, + library_name = 'Worm named poorly', + library_species = obj.species_human, + experiment_type = obj.experiment_rna_seq, + creation_date = datetime.datetime.now(), + made_for = 'scientist unit 2007', + made_by = 'microfludics system 7321', + stopping_point = '2A', + undiluted_concentration = '5.01', + ) + obj.library_10002.save() + +class LibraryTestCase(unittest.TestCase): + def setUp(self): + create_db(self) + + def testOrganism(self): + self.assertEquals(self.library_10001.organism(), 'human') + + def testAffiliations(self): + self.library_10001.affiliations.add(self.affiliation_alice) + self.library_10002.affiliations.add( + self.affiliation_alice, + self.affiliation_bob + ) + self.failUnless(len(self.library_10001.affiliations.all()), 1) + self.failUnless(self.library_10001.affiliation(), 'Alice') + + self.failUnless(len(self.library_10002.affiliations.all()), 2) + self.failUnless(self.library_10001.affiliation(), 'Alice, Bob') + -- 2.30.2