def setUp(self): super(CourseEnrollmentBadgeTest, self).setUp() self.badge_classes = [ BadgeClassFactory(issuing_component='openedx__course'), BadgeClassFactory(issuing_component='openedx__course'), BadgeClassFactory(issuing_component='openedx__course'), ] nums = ['3', '5', '8'] entries = [ ','.join(pair) for pair in zip(nums, [badge.slug for badge in self.badge_classes]) ] enrollment_config = '\r'.join(entries) self.config = CourseEventBadgesConfigurationFactory( courses_enrolled=enrollment_config)
def setUp(self, **kwargs): super(CourseCompletionBadgeTest, self).setUp() self.badge_classes = [ BadgeClassFactory(issuing_component='openedx__course'), BadgeClassFactory(issuing_component='openedx__course'), BadgeClassFactory(issuing_component='openedx__course'), ] nums = ['2', '6', '9'] entries = [ ','.join(pair) for pair in zip(nums, [badge.slug for badge in self.badge_classes]) ] completed_config = '\r'.join(entries) self.config = CourseEventBadgesConfigurationFactory.create( courses_completed=completed_config) self.config.clean_fields()
def test_assertions_for_user(self): """ Verify that grabbing all assertions for a user behaves as expected. This function uses object IDs because for some reason Jenkins trips up on its assertItemsEqual check here despite the items being equal. """ user = UserFactory() assertions = [ BadgeAssertionFactory.create(user=user).id for _i in range(3) ] course = CourseFactory.create() course_key = course.location.course_key course_badges = [ BadgeClassFactory(course_id=course_key) for _i in range(3) ] course_assertions = [ BadgeAssertionFactory.create(user=user, badge_class=badge_class).id for badge_class in course_badges ] assertions.extend(course_assertions) assertions.sort() assertions_for_user = [ badge.id for badge in BadgeAssertion.assertions_for_user(user) ] assertions_for_user.sort() self.assertEqual(assertions_for_user, assertions) course_scoped_assertions = [ badge.id for badge in BadgeAssertion.assertions_for_user( user, course_id=course_key) ] course_scoped_assertions.sort() self.assertEqual(course_scoped_assertions, course_assertions)
def setUp(self): super(CourseGroupBadgeTest, self).setUp() self.badge_classes = [ BadgeClassFactory(issuing_component='openedx__course'), BadgeClassFactory(issuing_component='openedx__course'), BadgeClassFactory(issuing_component='openedx__course'), ] self.courses = [] for _badge_class in self.badge_classes: # pylint: disable=no-member self.courses.append( [CourseFactory().location.course_key for _i in range(3)]) lines = [ badge_class.slug + ',' + ','.join([unicode(course_key) for course_key in keys]) for badge_class, keys in zip(self.badge_classes, self.courses) ] config = '\r'.join(lines) self.config = CourseEventBadgesConfigurationFactory( course_groups=config) self.config_map = dict(zip(self.badge_classes, self.courses))
def test_get_assertions(self): """ Verify we can get all of a user's badge assertions. """ for dummy in range(3): BadgeAssertionFactory(user=self.user) # Add in a course scoped badge-- these should not be excluded from the full listing. BadgeAssertionFactory(user=self.user, badge_class=BadgeClassFactory(course_id=self.course.location.course_key)) # Should not be included. for dummy in range(3): self.create_badge_class(False) response = self.get_json(self.url()) self.assertEqual(len(response['results']), 4)