def test_raise_error_on_badge_delete_if_not_owner(self): # setup badge = badge_api.create_badge(**self.BADGE_MOCK_ATTRIBUTES) badge_api.publish_badge(badge['uri']) # test that method raises error when user is not author of a badge with self.assertRaises(badge_api.NotTheAuthorError): badge_api.delete_badge(badge['uri'], '/uri/user/iamnottheowner')
def delete(request, badge_id): """ Setting badge attribute 'deleted' to True """ user_uri = request.session['user']['uri'] try: badge_api.delete_badge(badge_api.id2uri(badge_id), user_uri) messages.success(request, _('Success! You have deleted your badge')) except badge_api.NotTheAuthorError: messages.error(request, _('Error! You are not the author of the badge!')) except badge_api.HasProjectsAttachedError: messages.error(request, _('Error! Badge has projects attached!')) return http.HttpResponseRedirect( reverse('dashboard', args=(p2pu_user_api.uri2username(user_uri),)) )
def test_badge_without_projects_was_deleted_by_owner(self): # setup badge = badge_api.create_badge(**self.BADGE_MOCK_ATTRIBUTES) badge_api.publish_badge(badge['uri']) # test that badge 'deleted' attribute has been set to False deleted_badge = badge_api.delete_badge(badge['uri'], badge['author_uri']) self.assertTrue(deleted_badge['deleted'])
def test_raise_error_on_badge_if_has_projects(self): # setup badge = badge_api.create_badge(**self.BADGE_MOCK_ATTRIBUTES) badge_api.publish_badge(badge['uri']) project = { 'badge_uri': badge['uri'], 'author_uri': '/uri/user/author', 'title': 'Test Project 1', 'image_uri': '/uri/image/1', 'work_url': 'http://example.com', 'description': 'Some description', 'reflection': 'Some other lesions learned', 'tags': 'tags' } project_api.create_project(**project) # test that method raises error when badge has projects attached to it with self.assertRaises(badge_api.HasProjectsAttachedError): badge_api.delete_badge(badge['uri'], badge['author_uri'])