コード例 #1
0
 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)
コード例 #2
0
 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)
コード例 #3
0
    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'])
コード例 #4
0
 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)
コード例 #5
0
 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'])
コード例 #6
0
    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'])
コード例 #7
0
 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)
コード例 #8
0
 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)