Exemple #1
0
    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')
Exemple #2
0
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),))
    )
Exemple #3
0
    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'])
Exemple #4
0
    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'])