Beispiel #1
0
 def test_cart_page(self):
     create_session(self)
     cart = Cart(session=self.client.session)
     cart_item1 = CartItemFactory.create(cart=cart.cart)
     cart_item2 = CartItemFactory.create(cart=cart.cart)
     analysis = cart_item1.analysis
     analysis.last_modified = '2000-01-01T01:01:01Z'
     analysis.save()
     page = cart.page()
     self.assertEqual(len(page), 2)
     self.assertTrue(
             ((cart_item1.analysis.analysis_id == page[0]['analysis_id']) and
             (cart_item2.analysis.analysis_id == page[1]['analysis_id'])) or
             ((cart_item1.analysis.analysis_id == page[1]['analysis_id']) and
             (cart_item2.analysis.analysis_id == page[0]['analysis_id'])))
     self.assertIn('platform', page[0])
     self.assertIn('refassem_short_name', page[0])
     # check is last_modified is the same as in Result
     self.assertEqual(analysis.last_modified, page[0]['last_modified'])
     # test sorting
     for attr in CART_SORT_ATTRIBUTES:
         page1 = cart.page(sort_by=attr)
         page2 = cart.page(sort_by='-%s' % attr)
         if attr == 'analysis_id':
             self.assertEqual(page1[0], page2[1])
             self.assertEqual(page1[1], page2[0])
Beispiel #2
0
 def test_cart_class(self):
     create_session(self)
     session = Session.objects.get(
             session_key=self.client.session.session_key)
     cart = session.cart
     my_cart = Cart(self.client.session)
     self.assertEqual(cart.items.count(), 0)
     # Analysises already created
     analysis1 = AnalysisFactory.create()
     analysis2 = AnalysisFactory.create()
     self.assertFalse(my_cart.in_cart(analysis2.analysis_id))
     analysis1_result = {
             'analysis_id': analysis1.analysis_id,
             'last_modified': analysis1.last_modified}
     analysis2_result = {
             'analysis_id': analysis2.analysis_id,
             'last_modified': analysis2.last_modified}
     my_cart.add(analysis1_result)
     my_cart.add(analysis2_result)
     self.assertTrue(my_cart.in_cart(analysis2.analysis_id))
     self.assertEqual(cart.items.count(), 2)
     # remove
     my_cart.remove(analysis2.analysis_id)
     self.assertFalse(my_cart.in_cart(analysis2.analysis_id))
     self.assertEqual(cart.items.count(), 1)
     # check update_stats
     analysis3 = AnalysisFactory.create(state='somestate')
     analysis3_result = {
             'analysis_id': analysis3.analysis_id,
             'last_modified': analysis3.last_modified}
     my_cart.add(analysis3_result)
     self.assertEqual(my_cart.size, 0)
     my_cart.update_stats()
     self.assertEqual(
             my_cart.size,
             analysis1.files_size + analysis3.files_size)
     self.assertEqual(my_cart.all_count, 2)
     self.assertEqual(my_cart.live_count, 1)
     # Analysis id not exist
     result = {
             'analysis_id': '01810b1a-84e4-43d5-8a1e-42b132a1126f',
             'last_modified': '2012-05-16T20:43:41Z',
             'state': 'live',
             'files_size': 12345}
     my_cart.add(result)
     # Analysis was modified
     result = {
             'analysis_id': analysis1.analysis_id,
             'last_modified': '3000-01-01T11:11:11Z',
             'state': 'bad',
             'files_size': 54321,
             'platform': 'PLT1'}
     self.assertNotEqual(analysis1.last_modified, result['last_modified'])
     self.assertNotEqual(analysis1.state, result['state'])
     self.assertNotEqual(analysis1.files_size, result['files_size'])
     my_cart.add(result)
     analysis1 = Analysis.objects.get(analysis_id=analysis1.analysis_id)
     self.assertEqual(analysis1.last_modified, result['last_modified'])
     self.assertEqual(analysis1.state, result['state'])
     self.assertEqual(analysis1.files_size, result['files_size'])
Beispiel #3
0
 def test_clear_cart(self):
     create_session(self)
     cart = Cart(session=self.client.session)
     CartItemFactory.create(cart=cart.cart)
     CartItemFactory.create(cart=cart.cart)
     cart.update_stats()
     self.assertEqual(cart.live_count, 2)
     self.assertEqual(cart.all_count, 2)
     cart.clear()
     self.assertEqual(cart.all_count, 0)
     self.assertEqual(cart.live_count, 0)
Beispiel #4
0
 def test_clean_sessions(self):
     self.assertEqual(Analysis.objects.count(), 0)
     self.assertEqual(Session.objects.count(), 0)
     self.assertEqual(CartModel.objects.count(), 0)
     self.assertEqual(CartItem.objects.count(), 0)
     # create session, cart, analysis and cart items
     analysis1 = Analysis.objects.create(
             analysis_id='017a4d4e-9f4b-4904-824e-060fde3ca223',
             last_modified='2013-05-16T20:43:40Z',
             state='live',
             files_size=4666849442)
     analysis2 = Analysis.objects.create(
             analysis_id='016b792f-e659-4143-b833-163141e21363',
             last_modified='2013-05-16T20:43:40Z',
             files_size=388596051,
             state='live')
     create_session(self)
     session = Session.objects.get(session_key=self.session.session_key)
     cart = session.cart
     # add some items to cart
     CartItem.objects.create(
             cart=cart,
             analysis=analysis1)
     CartItem.objects.create(
             cart=cart,
             analysis=analysis2)
     # and one more session and cart
     create_session(self)
     session = Session.objects.get(session_key=self.session.session_key)
     cart = session.cart
     # add some items to cart
     CartItem.objects.create(
             cart=cart,
             analysis=analysis1)
     self.assertEqual(Analysis.objects.count(), 2)
     self.assertEqual(Session.objects.count(), 4)
     self.assertEqual(CartModel.objects.count(), 4)
     self.assertEqual(CartItem.objects.count(), 3)
     # try to remove sessions
     stdout = StringIO()
     stderr = StringIO()
     call_command('clean_sessions', stdout=stdout, stderr=stderr)
     stderr.seek(0)
     stderr = stderr.read()
     self.assertIn('Done', stderr)
     self.assertEqual(Analysis.objects.count(), 0)
     self.assertEqual(Session.objects.count(), 0)
     self.assertEqual(CartModel.objects.count(), 0)
     self.assertEqual(CartItem.objects.count(), 0)
Beispiel #5
0
 def test_cart_add_files_without_q(self):
     create_session(self)
     data = {
         'filters': json.dumps({
                     'state': '(live)',
                     'upload_date': '[NOW-1DAY TO NOW]',
                     'study': '(*Other_Sequencing_Multiisolate)'
                 })}
     url = reverse('cart_add_remove_items', args=('add',))
     response = self.client.post(
             url, data, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
     self.assertEqual(response.status_code, 200)
     data = json.loads(response.content)
     self.assertEqual(data['action'], 'redirect')
     self.assertTrue(CartModel.objects.filter(
             session__session_key=self.client.session.session_key).exists())
Beispiel #6
0
 def test_cart_add_files_with_q(self):
     oldUseAllMetadataIndex = browser_text_search.useAllMetadataIndex
     browser_text_search.useAllMetadataIndex = True
     create_session(self)
     data = {
         'filters': json.dumps({
                     'state': '(live)',
                     'q': '(00b27c0f-acf5-434c-8efa-25b1f3c4f506)'
                 })}
     url = reverse('cart_add_remove_items', args=('add',))
     response = self.client.post(
             url, data, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
     self.assertEqual(response.status_code, 200)
     data = json.loads(response.content)
     self.assertEqual(data['action'], 'redirect')
     cart_model = CartModel.objects.get(
             session__session_key=self.client.session.session_key)
     self.assertTrue(cart_model.items.filter(
             analysis__analysis_id='00b27c0f-acf5-434c-8efa-25b1f3c4f506')
             .exists())
     browser_text_search.useAllMetadataIndex = oldUseAllMetadataIndex
Beispiel #7
0
 def test_cart_creation(self):
     # cart created on session creation
     self.assertFalse(CartModel.objects.exists())
     self.assertFalse(Session.objects.exists())
     create_session(self)
     session = Session.objects.get(
             session_key=self.client.session.session_key)
     cart = session.cart
     self.assertTrue(cart)
     # add some items to cart
     analysis = Analysis.objects.create(
             analysis_id='017a4d4e-9f4b-4904-824e-060fde3ca223',
             last_modified='2013-05-16T20:43:40Z',
             state='live',
             files_size=4666849442)
     CartItem.objects.create(
             cart=cart,
             analysis=analysis)
     analysis = Analysis.objects.create(
             analysis_id='016b792f-e659-4143-b833-163141e21363',
             last_modified='2013-05-16T20:43:40Z',
             files_size=388596051,
             state='live')
     CartItem.objects.create(
             cart=cart,
             analysis=analysis)
     self.assertEqual(cart.items.count(), 2)
     self.assertEqual(CartItem.objects.count(), 2)
     self.assertTrue(cart.items.filter(
             analysis__files_size=4666849442).exists())
     # cart remove on sesion remove
     session.delete()
     self.assertFalse(Session.objects.filter(
             session_key=self.client.session.session_key).exists())
     self.assertFalse(CartModel.objects.filter(id=cart.id).exists())
     self.assertEqual(CartItem.objects.count(), 0)