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)
def test_clear_badge(self, issue_badges, xqueue): """ Given that I have a user with a badge If I run regeneration for a user Then certificate generation will be requested And the badge will be deleted if badge issuing is enabled """ key = self.course.location.course_key self._create_cert(key, self.user, CertificateStatuses.downloadable) badge_class = get_completion_badge(key, self.user) BadgeAssertionFactory(badge_class=badge_class, user=self.user) assert BadgeAssertion.objects.filter(user=self.user, badge_class=badge_class) self.course.issue_badges = issue_badges self.store.update_item(self.course, None) args = '-u {} -c {}'.format(self.user.email, str(key)) call_command(self.command, *args.split(' ')) assert xqueue.return_value.regen_cert.call_args.args == ( self.user, key, ) regen_cert_call_kwargs = xqueue.return_value.regen_cert.call_args.kwargs assert regen_cert_call_kwargs.pop( 'course').location == self.course.location assert regen_cert_call_kwargs == { 'forced_grade': None, 'template_file': None, 'generate_pdf': True, } assert bool( BadgeAssertion.objects.filter( user=self.user, badge_class=badge_class)) == (not issue_badges)
def test_clear_badge(self, issue_badges, xqueue): """ Given that I have a user with a badge If I run regeneration for a user Then certificate generation will be requested And the badge will be deleted if badge issuing is enabled """ key = self.course.location.course_key self._create_cert(key, self.user, CertificateStatuses.downloadable) badge_class = get_completion_badge(key, self.user) BadgeAssertionFactory(badge_class=badge_class, user=self.user) self.assertTrue( BadgeAssertion.objects.filter(user=self.user, badge_class=badge_class)) self.course.issue_badges = issue_badges self.store.update_item(self.course, None) args = u'-u {} -c {}'.format(self.user.email, text_type(key)) call_command(self.command, *args.split(' ')) xqueue.return_value.regen_cert.assert_called_with(self.user, key, course=self.course, forced_grade=None, template_file=None, generate_pdf=True) self.assertEqual( bool( BadgeAssertion.objects.filter(user=self.user, badge_class=badge_class)), not issue_badges)
def award(self, badge_class, user, evidence_url=None): return BadgeAssertionFactory(badge_class=badge_class, user=user)