예제 #1
0
class SampleTestCase(unittest.TestCase):
    def setUp(self):
        self.series = Series("GSE123456", "GSE123456_family.soft.subset")
        self.sample = Sample("GSM1", self.series)

    def test_is_info_complete(self):
        self.assertFalse(self.sample.is_info_complete())
        self.sample.organism = "Mus musculus"
        self.assertFalse(self.sample.is_info_complete())
        self.sample.url = "ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000000"
        self.assertTrue(self.sample.is_info_complete())

    @mock.patch("rsempipeline.utils.objs.Sample.is_info_complete")
    def test_gen_outdir(self, mock_is_info_complete):
        self.sample.organism = "Mus musculus"
        self.sample.url = "ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000000"
        self.assertEqual(self.sample.gen_outdir("some_outdir"), "some_outdir/GSE123456/mus_musculus/GSM1")
        self.assertEqual(self.sample.outdir, "some_outdir/GSE123456/mus_musculus/GSM1")
        mock_is_info_complete.return_value = False
        self.assertRaisesRegexp(ValueError, "not information complete", self.sample.gen_outdir, "some_outdir")

    def test___str__(self):
        self.sample.organism = "Mus musculus"
        self.sample.url = "ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000000"
        self.sample.gen_outdir("some_outdir")
        self.assertEqual(str(self.sample), "<GSM1 (0/0/0) of GSE123456 at some_outdir/GSE123456/mus_musculus/GSM1>")

    def test___repr__(self):
        self.sample.organism = "Mus musculus"
        self.sample.url = "ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000000"
        self.sample.gen_outdir("some_outdir")
        self.assertEqual(str(self.sample), "<GSM1 (0/0/0) of GSE123456 at some_outdir/GSE123456/mus_musculus/GSM1>")