예제 #1
0
파일: tests.py 프로젝트: dudarev/cghub
    def test_metadata_views(self):
        request = get_request()
        request.session.save()
        cart = Cart(session=request.session)
        analysis = AnalysisFactory.create(
                analysis_id=self.analysis_id,
                last_modified=self.last_modified)
        CartItemFactory.create(
                cart=cart.cart,
                analysis=analysis)
        analysis = AnalysisFactory.create(
                analysis_id=self.analysis_id2,
                last_modified=self.last_modified2)
        CartItemFactory.create(
                cart=cart.cart,
                analysis=analysis)

        # test summary
        response = summary(request)
        content = response.content
        self.assertTrue(all(field.lower().replace(' ', '_') in content
                            for field in settings.TABLE_COLUMNS))
        self.assertTrue(self.analysis_id in content)
        self.assertTrue(self.analysis_id2 in content)
        self._check_content_type_and_disposition(response, type='text/tsv', filename='summary.tsv')

        # test metadata view
        response = metadata(request)
        content = response.content
        self.assertTrue(
                ('<analysis_id>%s</analysis_id>' % self.analysis_id in content) or
                ('<str name="analysis_id">%s</str>' % self.analysis_id in content))
        self.assertTrue(
                ('<analysis_id>%s</analysis_id>' % self.analysis_id2 in content) or
                ('<str name="analysis_id">%s</str>' % self.analysis_id2 in content))
        self._check_content_type_and_disposition(response, type='text/xml', filename='metadata.xml')

        # test manifest
        response = manifest(request)
        content = response.content
        self.assertTrue(
                ('<analysis_id>%s</analysis_id>' % self.analysis_id in content) or
                ('<str name="analysis_id">%s</str>' % self.analysis_id in content))
        self.assertTrue(
                ('<analysis_id>%s</analysis_id>' % self.analysis_id2 in content) or
                ('<str name="analysis_id">%s</str>' % self.analysis_id2 in content))
        self._check_content_type_and_disposition(response, type='text/xml', filename='manifest.xml')
예제 #2
0
파일: tests.py 프로젝트: dudarev/cghub
    def test_iterators(self):
        request = get_request()
        cart = Cart(session=request.session)
        analysis = AnalysisFactory.create(
                analysis_id=self.analysis_id,
                last_modified=self.last_modified)
        CartItemFactory.create(
                cart=cart.cart,
                analysis=analysis)
        analysis = AnalysisFactory.create(
                analysis_id=self.analysis_id2,
                last_modified=self.last_modified2)
        CartItemFactory.create(
                cart=cart.cart,
                analysis=analysis)
        cart.update_stats()

        # summary tsv generator
        iterator = summary_tsv_generator(request)
        result = ''
        for i in iterator:
            result += i
        self.assertIn('center', result)
        self.assertIn('analysis_id', result)
        self.assertIn(self.last_modified[:10], result)
        self.assertIn(self.analysis_id, result)
        self.assertIn(self.analysis_id2, result)
        self.assertNotIn('Error!', result)

        # test compressing for tsv generator
        iterator = summary_tsv_generator(request, compress=True)
        result = ''
        for i in iterator:
            result += i
        self.assertIn('summary.tsv', result)

        # analysis_data_uri list generator
        iterator = urls_tsv_generator(request)
        result = ''
        for i in iterator:
            result += i
        self.assertIn(self.analysis_id ,result)
        self.assertIn(self.analysis_id2 ,result)
        self.assertIn('http' ,result)
        self.assertNotIn('Error!', result)

        # test compressing for analysis_data_uri list
        iterator = urls_tsv_generator(request, compress=True)
        result = ''
        for i in iterator:
            result += i
        self.assertIn('urls.txt', result)

        # metadata xml generator
        iterator = metadata_xml_generator(request)
        result = ''
        for i in iterator:
            result += i
        self.assertIn('ResultSet', result)
        self.assertIn('Result id="1"', result)
        self.assertIn('Result id="2"', result)
        self.assertNotIn('Error!', result)
        self.assertIn('<analysis_xml>', result)

        # menifest xml generator
        iterator = manifest_xml_generator(request)
        result = ''
        for i in iterator:
            result += i
        self.assertIn('ResultSet', result)
        self.assertIn('Result id="1"', result)
        self.assertIn('Result id="2"', result)
        self.assertNotIn('Error!', result)
        self.assertNotIn('<analysis_xml>', result)
        self.assertIn('<filename>', result)
        self.assertIn(settings.CGHUB_DOWNLOAD_SERVER, result)

        # test compressing for xml generator
        iterator = manifest_xml_generator(request, compress=True)
        result = ''
        for i in iterator:
            result += i
        self.assertIn('manifest.xml', result)

        # test error when some analysis was not found

        self.assertEqual(cart.cart.items.count(), 2)
        # add one bad analysis_id
        analysis = cart.cart.items.all()[1].analysis
        analysis.analysis_id = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
        analysis.save()

        self.assertNotIn('messages', request.session)

        # summary tsv iterator
        iterator = summary_tsv_generator(request)
        result = ''
        for i in iterator:
            result += i
        self.assertIn('center', result)
        self.assertIn('analysis_id', result)
        self.assertIn(self.last_modified[:10], result)
        self.assertIn(self.analysis_id, result)
        self.assertNotIn(self.analysis_id2, result)
        self.assertIn('Error!', result)
        # test message added on error
        self.assertIn('messages', request.session)

        # analysis_xml iterator
        iterator = metadata_xml_generator(request)
        result = ''
        for i in iterator:
            result += i
        self.assertIn('ResultSet', result)
        self.assertIn('Result id="1"', result)
        self.assertNotIn('Result id="2"', result)
        self.assertNotIn('Error!', result)
        self.assertEqual(len(request.session['messages']), 2)