def test_cached_result(self): r = TimeRestriction.objects.create( timeframe_from=now() - timedelta(days=3), timeframe_to=now() + timedelta(days=3), event=self.event, price=12) r.item = self.item r.save() result = signals.availability_handler( self.event, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache()) self.assertEqual(len(result), 1) self.assertIn('available', result[0]) self.assertTrue(result[0]['available']) self.assertEqual(result[0]['price'], 12) result = signals.availability_handler( self.event, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache()) self.assertEqual(len(result), 1) self.assertIn('available', result[0]) self.assertTrue(result[0]['available']) self.assertEqual(result[0]['price'], 12)
def test_cached_result(self): r = TimeRestriction.objects.create( timeframe_from=now() - timedelta(days=3), timeframe_to=now() + timedelta(days=3), event=self.event, price=12 ) r.item = self.item r.save() result = signals.availability_handler( self.event, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache() ) self.assertEqual(len(result), 1) self.assertIn('available', result[0]) self.assertTrue(result[0]['available']) self.assertEqual(result[0]['price'], 12) result = signals.availability_handler( self.event, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache() ) self.assertEqual(len(result), 1) self.assertIn('available', result[0]) self.assertTrue(result[0]['available']) self.assertEqual(result[0]['price'], 12)
def test_variation_specific(self): self.property.item = self.item self.property.save() r1 = TimeRestriction.objects.create( timeframe_from=now() - timedelta(days=5), timeframe_to=now() + timedelta(days=1), event=self.event, price=12) r1.item = self.item r1.save() r1.variations.add(self.variation1) result = signals.availability_handler( self.event, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache()) self.assertEqual(len(result), 3) for v in result: if 'variation' in v and v['variation'].pk == self.variation1.pk: self.assertTrue(v['available']) self.assertEqual(v['price'], 12) else: self.assertTrue(v['available'])
def test_multiple_overlapping_tomorrow(self): r1 = TimeRestriction.objects.create( timeframe_from=now() - timedelta(days=5), timeframe_to=now() + timedelta(days=5), event=self.event, price=12) r1.item = self.item r1.save() r2 = TimeRestriction.objects.create( timeframe_from=now() + timedelta(days=1), timeframe_to=now() + timedelta(days=7), event=self.event, price=8) r2.item = self.item r2.save() result = signals.availability_handler( self.event, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache()) self.assertEqual(len(result), 1) self.assertIn('available', result[0]) self.assertTrue(result[0]['available']) self.assertEqual(result[0]['price'], 12)
def test_multiple_distinct_unavailable(self): r1 = TimeRestriction.objects.create( timeframe_from=now() - timedelta(days=5), timeframe_to=now() - timedelta(days=1), event=self.event, price=12 ) r1.item = self.item r1.save() r2 = TimeRestriction.objects.create( timeframe_from=now() + timedelta(days=4), timeframe_to=now() + timedelta(days=7), event=self.event, price=8 ) r2.item = self.item r2.save() result = signals.availability_handler( self.event, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache() ) self.assertEqual(len(result), 1) self.assertIn('available', result[0]) self.assertFalse(result[0]['available'])
def test_variation_specific(self): self.property.item = self.item self.property.save() r1 = TimeRestriction.objects.create( timeframe_from=now() - timedelta(days=5), timeframe_to=now() + timedelta(days=1), event=self.event, price=12 ) r1.item = self.item r1.save() r1.variations.add(self.variation1) result = signals.availability_handler( self.event, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache() ) self.assertEqual(len(result), 3) for v in result: if 'variation' in v and v['variation'].pk == self.variation1.pk: self.assertTrue(v['available']) self.assertEqual(v['price'], 12) else: self.assertTrue(v['available'])
def test_nothing(self): result = signals.availability_handler( None, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache() ) self.assertEqual(len(result), 1) self.assertTrue('available' not in result[0] or result[0]['available'] is True)
def test_nothing(self): result = signals.availability_handler( None, item=self.item, variations=self.item.get_all_variations(), context=None, cache=self.event.get_cache()) self.assertEqual(len(result), 1) self.assertTrue('available' not in result[0] or result[0]['available'] is True)