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 )
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)
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 )
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))
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))
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)
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)
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)