Пример #1
0
 def _get_products(self, modes):
     """ Creates/updates course seat products. """
     for mode in modes:
         certificate_type = Course.certificate_type_for_mode(mode['slug'])
         id_verification_required = Course.is_mode_verified(mode['slug'])
         price = mode['min_price']
         expires = mode.get('expiration_datetime')
         expires = parse(expires) if expires else None
         # Have to pass in the sku in case it is an update
         sku = None
         if self.course.seat_products.exists():
             if certificate_type == Course.certificate_type_for_mode('audit'):
                 # Yields a match if attribute names do not include 'certificate_type'.
                 certificate_type_query = ~Q(attributes__name='certificate_type')
             else:
                 # Yields a match if attribute with name 'certificate_type' matches provided value.
                 certificate_type_query = Q(
                     attributes__name='certificate_type',
                     attribute_values__value_text=certificate_type
                 )
             seat = self.course.seat_products.filter(certificate_type_query).first()
             stock_record = seat and seat.stockrecords.first()
             if stock_record:
                 sku = stock_record.partner_sku
         self.course.create_or_update_seat(
             certificate_type, id_verification_required, price, expires=expires, remove_stale_modes=False, sku=sku
         )
Пример #2
0
 def _get_products(self, modes):
     """ Creates/updates course seat products. """
     for mode in modes:
         certificate_type = Course.certificate_type_for_mode(mode['slug'])
         id_verification_required = Course.is_mode_verified(mode['slug'])
         price = mode['min_price']
         expires = mode.get('expiration_datetime')
         expires = parse(expires) if expires else None
         self.course.create_or_update_seat(certificate_type, id_verification_required, price, expires=expires)
Пример #3
0
 def _get_products(self, modes):
     """ Creates/updates course seat products. """
     for mode in modes:
         certificate_type = Course.certificate_type_for_mode(mode['slug'])
         id_verification_required = Course.is_mode_verified(mode['slug'])
         price = mode['min_price']
         expires = mode.get('expiration_datetime')
         expires = parse(expires) if expires else None
         self.course.create_or_update_seat(
             certificate_type, id_verification_required, price, expires=expires, remove_stale_modes=False
         )
Пример #4
0
    def assert_seat_valid(self, seat, mode):
        """ Verify the given seat is configured correctly. """
        certificate_type = Course.certificate_type_for_mode(mode)

        expected_title = 'Seat in {}'.format(self.course_name)
        if certificate_type != '':
            expected_title += ' with {} certificate'.format(certificate_type)

        self.assertEqual(seat.title, expected_title)
        self.assertEqual(getattr(seat.attr, 'certificate_type', ''),
                         certificate_type)
        self.assertEqual(seat.expires, EXPIRES)
        self.assertEqual(seat.attr.course_key, self.course_id)
        self.assertEqual(seat.attr.id_verification_required,
                         Course.is_mode_verified(mode))
Пример #5
0
    def assert_seat_valid(self, seat, mode):
        """ Verify the given seat is configured correctly. """
        certificate_type = Course.certificate_type_for_mode(mode)

        expected_title = 'Seat in {}'.format(self.course_name)
        if certificate_type != '':
            expected_title += ' with {} certificate'.format(certificate_type)

            if seat.attr.id_verification_required:
                expected_title += u' (and ID verification)'

        self.assertEqual(seat.title, expected_title)
        self.assertEqual(getattr(seat.attr, 'certificate_type', ''), certificate_type)
        self.assertEqual(seat.expires, EXPIRES)
        self.assertEqual(seat.attr.course_key, self.course_id)
        self.assertEqual(seat.attr.id_verification_required, Course.is_mode_verified(mode))
Пример #6
0
    def assert_seat_valid(self, seat, certificate_type):
        """ Verify the given seat is configured correctly. """
        certificate_type = Course.certificate_type_for_mode(certificate_type)

        expected_title = 'Seat in A Tést Côurse with {} certificate'.format(certificate_type)
        if seat.attr.id_verification_required:
            expected_title += u' (and ID verification)'

        self.assertEqual(seat.title, expected_title)
        self.assertEqual(seat.attr.certificate_type, certificate_type)
        self.assertEqual(seat.expires, EXPIRES)
        self.assertEqual(seat.attr.certificate_type, certificate_type)
        self.assertEqual(seat.attr.course_key, self.course_id)
Пример #7
0
 def test_certificate_type_for_mode(self, mode, expected):
     """ Verify the method returns the correct certificate type for a given mode. """
     self.assertEqual(Course.certificate_type_for_mode(mode), expected)
Пример #8
0
 def test_is_mode_verified(self, mode, expected):
     """ Verify the method returns True only for verified modes. """
     self.assertEqual(Course.is_mode_verified(mode), expected)
Пример #9
0
 def test_certificate_type_for_mode(self, mode, expected):
     """ Verify the method returns the correct certificate type for a given mode. """
     self.assertEqual(Course.certificate_type_for_mode(mode), expected)
Пример #10
0
 def test_is_mode_verified(self, mode, expected):
     """ Verify the method returns True only for verified modes. """
     self.assertEqual(Course.is_mode_verified(mode), expected)