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')
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)