def test_coupon_codes_features(self): query_features = [ 'course_id', 'percentage_discount', 'code_redeemed_count', 'description' ] for i in range(10): coupon = Coupon(code='test_code{0}'.format(i), description='test_description', course_id=self.course.id, percentage_discount='{0}'.format(i), created_by=self.instructor, is_active=True) coupon.save() active_coupons = Coupon.objects.filter(course_id=self.course.id, is_active=True) active_coupons_list = coupon_codes_features(query_features, active_coupons) self.assertEqual(len(active_coupons_list), len(active_coupons)) for active_coupon in active_coupons_list: self.assertEqual(set(active_coupon.keys()), set(query_features)) self.assertIn( active_coupon['percentage_discount'], [coupon.percentage_discount for coupon in active_coupons]) self.assertIn(active_coupon['description'], [coupon.description for coupon in active_coupons]) self.assertIn(active_coupon['course_id'], [ coupon.course_id.to_deprecated_string() for coupon in active_coupons ])
def test_coupon_codes_features(self): query_features = [ 'course_id', 'percentage_discount', 'code_redeemed_count', 'description', 'expiration_date', 'total_discounted_amount', 'total_discounted_seats' ] for i in range(10): coupon = Coupon(code='test_code{0}'.format(i), description='test_description', course_id=self.course.id, percentage_discount='{0}'.format(i), created_by=self.instructor, is_active=True) coupon.save() #now create coupons with the expiration dates for i in range(5): coupon = Coupon(code='coupon{0}'.format(i), description='test_description', course_id=self.course.id, percentage_discount='{0}'.format(i), created_by=self.instructor, is_active=True, expiration_date=datetime.datetime.now(pytz.UTC) + datetime.timedelta(days=2)) coupon.save() active_coupons = Coupon.objects.filter( Q(course_id=self.course.id), Q(is_active=True), Q(expiration_date__gt=datetime.datetime.now(pytz.UTC)) | Q(expiration_date__isnull=True)) active_coupons_list = coupon_codes_features(query_features, active_coupons, self.course.id) self.assertEqual(len(active_coupons_list), len(active_coupons)) for active_coupon in active_coupons_list: self.assertEqual(set(active_coupon.keys()), set(query_features)) self.assertIn( active_coupon['percentage_discount'], [coupon.percentage_discount for coupon in active_coupons]) self.assertIn(active_coupon['description'], [coupon.description for coupon in active_coupons]) if active_coupon['expiration_date']: self.assertIn( active_coupon['expiration_date'], [coupon.display_expiry_date for coupon in active_coupons]) self.assertIn(active_coupon['course_id'], [ coupon.course_id.to_deprecated_string() for coupon in active_coupons ])
def test_coupon_codes_features(self): query_features = [ 'course_id', 'percentage_discount', 'code_redeemed_count', 'description', 'expiration_date', 'total_discounted_amount', 'total_discounted_seats' ] for i in range(10): coupon = Coupon( code='test_code{0}'.format(i), description='test_description', course_id=self.course.id, percentage_discount='{0}'.format(i), created_by=self.instructor, is_active=True ) coupon.save() #now create coupons with the expiration dates for i in range(5): coupon = Coupon( code='coupon{0}'.format(i), description='test_description', course_id=self.course.id, percentage_discount='{0}'.format(i), created_by=self.instructor, is_active=True, expiration_date=datetime.datetime.now(pytz.UTC) + datetime.timedelta(days=2) ) coupon.save() active_coupons = Coupon.objects.filter( Q(course_id=self.course.id), Q(is_active=True), Q(expiration_date__gt=datetime.datetime.now(pytz.UTC)) | Q(expiration_date__isnull=True) ) active_coupons_list = coupon_codes_features(query_features, active_coupons, self.course.id) self.assertEqual(len(active_coupons_list), len(active_coupons)) for active_coupon in active_coupons_list: self.assertEqual(set(active_coupon.keys()), set(query_features)) self.assertIn(active_coupon['percentage_discount'], [coupon.percentage_discount for coupon in active_coupons]) self.assertIn(active_coupon['description'], [coupon.description for coupon in active_coupons]) if active_coupon['expiration_date']: self.assertIn(active_coupon['expiration_date'], [coupon.display_expiry_date for coupon in active_coupons]) self.assertIn( active_coupon['course_id'], [text_type(coupon.course_id) for coupon in active_coupons] )
def test_coupon_codes_features(self): query_features = [ 'course_id', 'percentage_discount', 'code_redeemed_count', 'description' ] for i in range(10): coupon = Coupon( code='test_code{0}'.format(i), description='test_description', course_id=self.course.id, percentage_discount='{0}'.format(i), created_by=self.instructor, is_active=True ) coupon.save() active_coupons = Coupon.objects.filter(course_id=self.course.id, is_active=True) active_coupons_list = coupon_codes_features(query_features, active_coupons) self.assertEqual(len(active_coupons_list), len(active_coupons)) for active_coupon in active_coupons_list: self.assertEqual(set(active_coupon.keys()), set(query_features)) self.assertIn(active_coupon['percentage_discount'], [coupon.percentage_discount for coupon in active_coupons]) self.assertIn(active_coupon['description'], [coupon.description for coupon in active_coupons]) self.assertIn( active_coupon['course_id'], [coupon.course_id.to_deprecated_string() for coupon in active_coupons] )