Example #1
0
 def test_delete_user(self):
     user = AdminFactory()
     self.login(user)
     other_user = UserFactory()
     response = self.delete(url_for('api.user', user=other_user))
     self.assert204(response)
     other_user.reload()
     response = self.delete(url_for('api.user', user=other_user))
     self.assert410(response)
     response = self.delete(url_for('api.user', user=user))
     self.assert403(response)
Example #2
0
 def test_delete_user(self):
     user = AdminFactory()
     self.login(user)
     other_user = UserFactory()
     response = self.delete(url_for('api.user', user=other_user))
     self.assert204(response)
     other_user.reload()
     response = self.delete(url_for('api.user', user=other_user))
     self.assert410(response)
     response = self.delete(url_for('api.user', user=user))
     self.assert403(response)
Example #3
0
    def test_org_admin_can_accept_transfer(self):
        owner = UserFactory()
        admin = UserFactory()
        org = OrganizationFactory(members=[Member(user=admin, role='admin')])
        subject = VisibleDatasetFactory(owner=owner)
        transfer = TransferFactory(owner=owner, recipient=org, subject=subject)

        owner.reload()  # Needs updated metrics
        assert owner.metrics['datasets'] == 1

        org.reload()  # Needs updated metrics
        assert org.metrics['datasets'] == 0

        admin.reload()  # Needs updated metrics
        assert admin.metrics['datasets'] == 0

        login_user(admin)
        transfer = accept_transfer(transfer)

        assert transfer.status == 'accepted'

        subject.reload()
        assert subject.organization == org
        assert subject.owner is None

        org.reload()
        assert org.metrics['datasets'] == 1

        admin.reload()
        assert admin.metrics['datasets'] == 0

        owner.reload()
        assert owner.metrics['datasets'] == 0
Example #4
0
    def test_recipient_user_can_accept_transfer(self):
        owner = UserFactory()
        recipient = UserFactory()
        subject = VisibleDatasetFactory(owner=owner)
        transfer = TransferFactory(owner=owner,
                                   recipient=recipient,
                                   subject=subject)

        owner.reload()  # Needs updated metrics
        assert owner.metrics['datasets'] == 1

        recipient.reload()  # Needs updated metrics
        assert recipient.metrics['datasets'] == 0

        login_user(recipient)
        transfer = accept_transfer(transfer)

        assert transfer.status == 'accepted'

        subject.reload()
        assert subject.owner == recipient

        recipient.reload()
        assert recipient.metrics['datasets'] == 1

        owner.reload()
        assert owner.metrics['datasets'] == 0
Example #5
0
    def test_org_admin_can_accept_transfer(self):
        owner = UserFactory()
        admin = UserFactory()
        org = OrganizationFactory(members=[Member(user=admin, role='admin')])
        subject = VisibleDatasetFactory(owner=owner)
        transfer = TransferFactory(owner=owner,
                                   recipient=org,
                                   subject=subject)

        owner.reload()  # Needs updated metrics
        assert owner.metrics['datasets'] == 1

        org.reload()  # Needs updated metrics
        assert org.metrics['datasets'] == 0

        admin.reload()  # Needs updated metrics
        assert admin.metrics['datasets'] == 0

        login_user(admin)
        transfer = accept_transfer(transfer)

        assert transfer.status == 'accepted'

        subject.reload()
        assert subject.organization == org
        assert subject.owner is None

        org.reload()
        assert org.metrics['datasets'] == 1

        admin.reload()
        assert admin.metrics['datasets'] == 0

        owner.reload()
        assert owner.metrics['datasets'] == 0
Example #6
0
    def test_recipient_user_can_accept_transfer(self):
        owner = UserFactory()
        recipient = UserFactory()
        subject = VisibleDatasetFactory(owner=owner)
        transfer = TransferFactory(owner=owner,
                                   recipient=recipient,
                                   subject=subject)

        owner.reload()  # Needs updated metrics
        assert owner.metrics['datasets'] == 1

        recipient.reload()  # Needs updated metrics
        assert recipient.metrics['datasets'] == 0

        login_user(recipient)
        transfer = accept_transfer(transfer)

        assert transfer.status == 'accepted'

        subject.reload()
        assert subject.owner == recipient

        recipient.reload()
        assert recipient.metrics['datasets'] == 1

        owner.reload()
        assert owner.metrics['datasets'] == 0
Example #7
0
    def test_org_admin_can_accept_transfer(self):
        owner = UserFactory()
        admin = UserFactory()
        org = OrganizationFactory(members=[Member(user=admin, role='admin')])
        subject = VisibleDatasetFactory(owner=owner)
        transfer = TransferFactory(owner=owner,
                                   recipient=org,
                                   subject=subject)

        owner.reload()  # Needs updated metrics
        self.assertEqual(owner.metrics['datasets'], 1)

        org.reload()  # Needs updated metrics
        self.assertEqual(org.metrics['datasets'], 0)

        admin.reload()  # Needs updated metrics
        self.assertEqual(admin.metrics['datasets'], 0)

        login_user(admin)
        transfer = accept_transfer(transfer)

        self.assertEqual(transfer.status, 'accepted')

        subject.reload()
        self.assertEqual(subject.organization, org)
        self.assertIsNone(subject.owner)

        org.reload()
        self.assertEqual(org.metrics['datasets'], 1)

        admin.reload()
        self.assertEqual(admin.metrics['datasets'], 0)

        owner.reload()
        self.assertEqual(owner.metrics['datasets'], 0)
Example #8
0
    def test_recipient_user_can_accept_transfer(self):
        owner = UserFactory()
        recipient = UserFactory()
        subject = VisibleDatasetFactory(owner=owner)
        transfer = TransferFactory(owner=owner,
                                   recipient=recipient,
                                   subject=subject)

        owner.reload()  # Needs updated metrics
        self.assertEqual(owner.metrics['datasets'], 1)

        recipient.reload()  # Needs updated metrics
        self.assertEqual(recipient.metrics['datasets'], 0)

        login_user(recipient)
        transfer = accept_transfer(transfer)

        self.assertEqual(transfer.status, 'accepted')

        subject.reload()
        self.assertEqual(subject.owner, recipient)

        recipient.reload()
        self.assertEqual(recipient.metrics['datasets'], 1)

        owner.reload()
        self.assertEqual(owner.metrics['datasets'], 0)
Example #9
0
    def test_delete_user(self):
        user = AdminFactory()
        self.login(user)
        other_user = UserFactory()
        file = create_test_image()

        response = self.post(url_for('api.user_avatar', user=other_user),
                             {'file': (file, 'test.png')},
                             json=False)

        response = self.delete(url_for('api.user', user=other_user))
        self.assertEqual(list(storages.avatars.list_files()), [])
        self.assert204(response)
        other_user.reload()
        response = self.delete(url_for('api.user', user=other_user))
        self.assert410(response)
        response = self.delete(url_for('api.user', user=user))
        self.assert403(response)
Example #10
0
    def test_update_user_on_authorize_callback(self):
        '''Should only update specific field on authorize callback'''
        user = UserFactory()

        old_slug = user.slug

        with self.mock_authorize(email=user.email, is_superuser=True) as (profile, client):
            response = self.get(url_for('youckan.authorized', code='code'), client=client)
            self.assertRedirects(response, url_for('site.home'))
            self.assertIn('youckan.token', session)
            self.assertTrue(current_user.is_authenticated)

            user.reload()
            self.assertEqual(user.slug, old_slug)
            self.assertEqual(user.first_name, profile['first_name'])
            self.assertEqual(user.last_name, profile['last_name'])
            self.assertEqual(user.email, profile['email'])
            self.assertEqual(user.avatar_url, profile['profile']['avatar'])

        self.assertEqual(len(User.objects), 1)