Пример #1
0
    def test_with_valid_organization(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        member = Member(user=user, role='editor')
        org = OrganizationFactory(members=[member])

        login_user(user)

        form = OwnableForm(MultiDict({
            'organization': str(org.id)
        }))

        self.assertEqual(form.owner.data, user)
        self.assertEqual(form.organization.data, org)

        form.validate()
        self.assertEqual(form.errors, {})

        self.assertIsNone(form.owner.data)
        self.assertEqual(form.organization.data, org)

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertIsNone(ownable.owner)
        self.assertEqual(ownable.organization, org)
Пример #2
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)
Пример #3
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
Пример #4
0
def check_credentials():
    try:
        with require_oauth.acquire() as token:
            login_user(token.user)
        return True
    except (Unauthorized, AuthlibFlaskException):
        return False
Пример #5
0
def check_credentials():
    try:
        with require_oauth.acquire() as token:
            login_user(token.user)
        return True
    except (Unauthorized, AuthlibFlaskException):
        return False
Пример #6
0
    def test_with_valid_organization(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        member = Member(user=user, role='editor')
        org = OrganizationFactory(members=[member])

        login_user(user)

        form = OwnableForm(MultiDict({
            'organization': str(org.id)
        }))

        self.assertEqual(form.owner.data, user)
        self.assertEqual(form.organization.data, org)

        form.validate()
        self.assertEqual(form.errors, {})

        self.assertIsNone(form.owner.data)
        self.assertEqual(form.organization.data, org)

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertIsNone(ownable.owner)
        self.assertEqual(ownable.organization, org)
Пример #7
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)
Пример #8
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
Пример #9
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
Пример #10
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
Пример #11
0
    def test_request_transfer_owner_to_user(self):
        user = UserFactory()
        dataset = VisibleDatasetFactory(owner=user)
        recipient = UserFactory()
        comment = faker.sentence()

        login_user(user)
        self.assert_transfer_started(dataset, user, recipient, comment)
Пример #12
0
    def test_request_transfer_user_to_organization(self):
        user = UserFactory()
        dataset = DatasetFactory(owner=user)
        recipient = OrganizationFactory()
        comment = faker.sentence()

        login_user(user)
        self.assert_transfer_started(dataset, user, recipient, comment)
Пример #13
0
    def test_request_transfer_to_self(self):
        user = UserFactory()
        dataset = DatasetFactory(owner=user)
        comment = faker.sentence()

        login_user(user)
        with self.assertRaises(ValueError):
            self.assert_transfer_started(dataset, user, user, comment)
Пример #14
0
    def test_request_transfer_owner_to_user(self):
        user = UserFactory()
        dataset = VisibleDatasetFactory(owner=user)
        recipient = UserFactory()
        comment = faker.sentence()

        login_user(user)
        self.assert_transfer_started(dataset, user, recipient, comment)
Пример #15
0
    def test_request_transfer_to_self(self):
        user = UserFactory()
        dataset = DatasetFactory(owner=user)
        comment = faker.sentence()

        login_user(user)
        with self.assertRaises(ValueError):
            self.assert_transfer_started(dataset, user, user, comment)
Пример #16
0
    def test_request_transfer_user_to_organization(self):
        user = UserFactory()
        dataset = DatasetFactory(owner=user)
        recipient = OrganizationFactory()
        comment = faker.sentence()

        login_user(user)
        self.assert_transfer_started(dataset, user, recipient, comment)
Пример #17
0
    def test_request_transfer_not_authorized_not_owner(self):
        user = UserFactory()
        dataset = DatasetFactory(owner=UserFactory())
        recipient = UserFactory()
        comment = faker.sentence()

        login_user(user)
        with self.assertRaises(PermissionDenied):
            request_transfer(dataset, recipient, comment)
Пример #18
0
    def test_initial_value(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)
        ownable = Ownable(owner=user)

        form = OwnableForm(None, obj=ownable)
        self.assertEqual(form.owner.data, user)
Пример #19
0
    def test_initial_value(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)
        ownable = Ownable(owner=user)

        form = OwnableForm(None, obj=ownable)
        self.assertEqual(form.owner.data, user)
Пример #20
0
    def test_request_transfer_not_authorized_not_owner(self):
        user = UserFactory()
        dataset = DatasetFactory(owner=UserFactory())
        recipient = UserFactory()
        comment = faker.sentence()

        login_user(user)
        with self.assertRaises(PermissionDenied):
            request_transfer(dataset, recipient, comment)
Пример #21
0
    def test_org_editor_cant_accept_transfer(self):
        owner = UserFactory()
        editor = UserFactory()
        org = OrganizationFactory(members=[Member(user=editor, role='editor')])
        subject = VisibleDatasetFactory(organization=org)
        transfer = TransferFactory(owner=owner, recipient=org, subject=subject)

        login_user(editor)
        with pytest.raises(PermissionDenied):
            accept_transfer(transfer)
Пример #22
0
    def test_request_transfer_organization_to_user(self):
        user = UserFactory()
        member = Member(user=user, role='admin')
        org = OrganizationFactory(members=[member])
        dataset = DatasetFactory(owner=user, organization=org)
        recipient = UserFactory()
        comment = faker.sentence()

        login_user(user)
        self.assert_transfer_started(dataset, org, recipient, comment)
Пример #23
0
    def test_request_transfer_organization_to_user(self):
        user = UserFactory()
        member = Member(user=user, role='admin')
        org = OrganizationFactory(members=[member])
        dataset = DatasetFactory(owner=user, organization=org)
        recipient = UserFactory()
        comment = faker.sentence()

        login_user(user)
        self.assert_transfer_started(dataset, org, recipient, comment)
Пример #24
0
    def test_request_transfer_to_same_organization(self):
        user = UserFactory()
        member = Member(user=user, role='admin')
        org = OrganizationFactory(members=[member])
        dataset = DatasetFactory(owner=user, organization=org)
        comment = faker.sentence()

        login_user(user)

        with self.assertRaises(ValueError):
            self.assert_transfer_started(dataset, org, org, comment)
Пример #25
0
    def test_request_transfer_to_same_organization(self):
        user = UserFactory()
        member = Member(user=user, role='admin')
        org = OrganizationFactory(members=[member])
        dataset = DatasetFactory(owner=user, organization=org)
        comment = faker.sentence()

        login_user(user)

        with self.assertRaises(ValueError):
            self.assert_transfer_started(dataset, org, org, comment)
Пример #26
0
    def test_request_transfer_not_authorized_not_admin(self):
        user = UserFactory()
        member = Member(user=user, role='editor')
        org = OrganizationFactory(members=[member])
        dataset = DatasetFactory(owner=user, organization=org)
        recipient = UserFactory()
        comment = faker.sentence()

        login_user(user)
        with self.assertRaises(PermissionDenied):
            request_transfer(dataset, recipient, comment)
Пример #27
0
    def test_request_transfer_not_authorized_not_admin(self):
        user = UserFactory()
        member = Member(user=user, role='editor')
        org = OrganizationFactory(members=[member])
        dataset = DatasetFactory(owner=user, organization=org)
        recipient = UserFactory()
        comment = faker.sentence()

        login_user(user)
        with self.assertRaises(PermissionDenied):
            request_transfer(dataset, recipient, comment)
Пример #28
0
    def test_with_initial_organization_and_user_logged(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        org = OrganizationFactory()
        ownable = Ownable(organization=org)

        login_user(user)

        form = OwnableForm(None, obj=ownable)
        self.assertIsNone(form.owner.data)
        self.assertEqual(form.organization.data, org)
Пример #29
0
    def test_with_user_not_found(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)

        form = OwnableForm(MultiDict({'owner': str(ObjectId())}))

        form.validate()
        self.assertIn('owner', form.errors)
        self.assertEqual(len(form.errors['owner']), 1)
Пример #30
0
    def test_with_invalid_data(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)

        form = OwnableForm(MultiDict({'owner': str('wrongwith12c')}))

        form.validate()
        self.assertIn('owner', form.errors)
        self.assertEqual(len(form.errors['owner']), 1)
Пример #31
0
    def test_with_initial_organization_and_user_logged(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        org = OrganizationFactory()
        ownable = Ownable(organization=org)

        login_user(user)

        form = OwnableForm(None, ownable)
        self.assertIsNone(form.owner.data)
        self.assertEqual(form.organization.data, org)
Пример #32
0
    def test_empty_values(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)

        form = OwnableForm()
        self.assertEqual(form.owner.data, user)

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
Пример #33
0
    def test_org_editor_cant_accept_transfer(self):
        owner = UserFactory()
        editor = UserFactory()
        org = OrganizationFactory(members=[Member(user=editor, role='editor')])
        subject = VisibleDatasetFactory(organization=org)
        transfer = TransferFactory(owner=owner,
                                   recipient=org,
                                   subject=subject)

        login_user(editor)
        with pytest.raises(PermissionDenied):
            accept_transfer(transfer)
Пример #34
0
    def test_empty_values(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)

        form = OwnableForm()
        self.assertEqual(form.owner.data, user)

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
Пример #35
0
    def test_with_invalid_data(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)

        form = OwnableForm(MultiDict({
            'owner': str('wrongwith12c')
        }))

        form.validate()
        self.assertIn('owner', form.errors)
        self.assertEqual(len(form.errors['owner']), 1)
Пример #36
0
    def test_class_shortcut(self):
        '''It should emit a signal on new activity'''
        self.emitted = False
        self.login()
        with self.app.app_context():
            login_user(self.user)
            with FakeActivity.on_new.connected_to(self.check_emitted):
                FakeActivity.emit(self.fake)

        self.assertTrue(self.emitted)

        self.assertEqual(Activity.objects(related_to=self.fake).count(), 1)
        self.assertEqual(Activity.objects(actor=self.user).count(), 1)
Пример #37
0
    def test_class_shortcut(self):
        '''It should emit a signal on new activity'''
        self.emitted = False
        self.login()
        with self.app.app_context():
            login_user(self.user)
            with FakeActivity.on_new.connected_to(self.check_emitted):
                FakeActivity.emit(self.fake)

        self.assertTrue(self.emitted)

        self.assertEqual(Activity.objects(related_to=self.fake).count(), 1)
        self.assertEqual(Activity.objects(actor=self.user).count(), 1)
Пример #38
0
    def test_with_user_not_found(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)

        form = OwnableForm(MultiDict({
            'owner': str(ObjectId())
        }))

        form.validate()
        self.assertIn('owner', form.errors)
        self.assertEqual(len(form.errors['owner']), 1)
Пример #39
0
    def test_add_badge_with_logged_user(self):
        '''It should track the user that add a badge'''
        user = UserFactory()
        fake = Fake.objects.create()

        login_user(user)
        result = fake.add_badge(TEST)

        self.assertEqual(len(fake.badges), 1)
        badge = fake.badges[0]
        self.assertEqual(result, badge)
        self.assertEqual(badge.kind, TEST)
        self.assertIsNotNone(badge.created)
        self.assertEqual(badge.created_by, user)
Пример #40
0
    def test_with_other_user(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        other = UserFactory()

        login_user(user)

        form = OwnableForm(MultiDict({'owner': str(other.id)}))

        self.assertEqual(form.owner.data, other)

        form.validate()
        self.assertIn('owner', form.errors)
        self.assertEqual(len(form.errors['owner']), 1)
Пример #41
0
    def test_not_member(self):
        Ownable, OwnableForm = self.factory()
        member = Member(user=UserFactory(), role='editor')
        org = OrganizationFactory(members=[member])

        login_user(UserFactory())

        form = OwnableForm(MultiDict({'organization': str(org.id)}))

        self.assertEqual(form.organization.data, org)

        self.assertFalse(form.validate())
        self.assertIn('organization', form.errors)
        self.assertEqual(len(form.errors['organization']), 1)
Пример #42
0
    def test_empty_values_logged(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)

        form = OwnableForm()

        self.assertEqual(form.owner.data, user)
        self.assertIsNone(form.organization.data)

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
        self.assertIsNone(ownable.organization)
Пример #43
0
    def test_with_valid_user_self_json(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        login_user(user)

        form = OwnableForm.from_json({'owner': str(user.id)})

        self.assertEqual(form.owner.data, user)

        form.validate()
        self.assertEqual(form.errors, {})

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
Пример #44
0
    def test_empty_values_logged(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)

        form = OwnableForm()

        self.assertEqual(form.owner.data, user)
        self.assertIsNone(form.organization.data)

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
        self.assertIsNone(ownable.organization)
Пример #45
0
    def test_with_initial_owner_and_no_data_provided(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        ownable = Ownable(owner=user)

        form = OwnableForm(MultiDict({}), obj=ownable)

        self.assertEqual(form.owner.data, user)

        login_user(user)
        form.validate()
        self.assertEqual(form.errors, {})

        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
        self.assertIsNone(ownable.organization)
Пример #46
0
    def test_with_other_user(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        other = UserFactory()

        login_user(user)

        form = OwnableForm(MultiDict({
            'owner': str(other.id)
        }))

        self.assertEqual(form.owner.data, other)

        form.validate()
        self.assertIn('owner', form.errors)
        self.assertEqual(len(form.errors['owner']), 1)
Пример #47
0
    def test_not_member(self):
        Ownable, OwnableForm = self.factory()
        member = Member(user=UserFactory(), role='editor')
        org = OrganizationFactory(members=[member])

        login_user(UserFactory())

        form = OwnableForm(MultiDict({
            'organization': str(org.id)
        }))

        self.assertEqual(form.organization.data, org)

        self.assertFalse(form.validate())
        self.assertIn('organization', form.errors)
        self.assertEqual(len(form.errors['organization']), 1)
Пример #48
0
    def test_with_initial_owner_and_no_data_provided(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        ownable = Ownable(owner=user)

        form = OwnableForm(MultiDict({}), ownable)

        self.assertEqual(form.owner.data, user)

        login_user(user)
        form.validate()
        self.assertEqual(form.errors, {})

        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
        self.assertIsNone(ownable.organization)
Пример #49
0
    def test_with_initial_and_not_member(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        org = OrganizationFactory(members=[Member(user=user, role='editor')])
        neworg = OrganizationFactory()
        ownable = Ownable(organization=org)

        form = OwnableForm(MultiDict({'organization': str(neworg.id)}),
                           obj=ownable)

        self.assertEqual(form.organization.data, neworg)

        login_user(user)
        form.validate()
        self.assertIn('organization', form.errors)
        self.assertEqual(len(form.errors['organization']), 1)
Пример #50
0
    def test_set_organization_if_permissions(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        member = Member(user=user, role='editor')
        org = OrganizationFactory(members=[member])
        ownable = Ownable(owner=user)

        login_user(user)

        form = OwnableForm(MultiDict({'organization': str(org.id)}), ownable)

        self.assertTrue(form.validate())
        self.assertEqual(form.errors, {})

        form.populate_obj(ownable)
        self.assertIsNone(ownable.owner)
        self.assertEqual(ownable.organization, org)
Пример #51
0
    def test_with_other_user_admin(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        admin = AdminFactory()

        login_user(admin)

        form = OwnableForm(MultiDict({'owner': str(user.id)}))

        self.assertEqual(form.owner.data, user)

        form.validate()
        self.assertEqual(form.errors, {})

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
Пример #52
0
    def test_with_initial_org_and_no_data_provided(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        org = OrganizationFactory(members=[Member(user=user, role='editor')])
        ownable = Ownable(organization=org)

        form = OwnableForm(MultiDict({}), ownable)

        self.assertEqual(form.organization.data, org)

        login_user(user)
        form.validate()
        self.assertEqual(form.errors, {})

        form.populate_obj(ownable)
        self.assertIsNone(ownable.owner)
        self.assertEqual(ownable.organization, org)
Пример #53
0
    def test_with_initial_and_not_member(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        org = OrganizationFactory(members=[Member(user=user, role='editor')])
        neworg = OrganizationFactory()
        ownable = Ownable(organization=org)

        form = OwnableForm(MultiDict({
            'organization': str(neworg.id)
        }), ownable)

        self.assertEqual(form.organization.data, neworg)

        login_user(user)
        form.validate()
        self.assertIn('organization', form.errors)
        self.assertEqual(len(form.errors['organization']), 1)
Пример #54
0
    def test_with_user_object_self_from_json(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        login_user(user)

        form = OwnableForm.from_json({
            'owner': {'id': str(user.id)}
        })

        self.assertEqual(form.owner.data, user)

        form.validate()
        self.assertEqual(form.errors, {})

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
Пример #55
0
    def test_with_initial_org_and_no_data_provided(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        org = OrganizationFactory(members=[Member(user=user, role='editor')])
        ownable = Ownable(organization=org)

        form = OwnableForm(MultiDict({}), obj=ownable)

        self.assertEqual(form.organization.data, org)

        login_user(user)
        form.validate()
        self.assertEqual(form.errors, {})

        form.populate_obj(ownable)
        self.assertIsNone(ownable.owner)
        self.assertEqual(ownable.organization, org)
Пример #56
0
def test_check_resource_creates_no_activity(activity_app, mocker):
    resource = ResourceFactory()
    dataset = DatasetFactory(resources=[resource])
    user = UserFactory()
    login_user(user)
    check_res = {'check:status': 200, 'check:available': True,
                 'check:date': datetime.now()}

    class DummyLinkchecker:
        def check(self, _):
            return check_res
    mocker.patch('udata.linkchecker.checker.get_linkchecker',
                 return_value=DummyLinkchecker)

    check_resource(resource)

    activities = Activity.objects.filter(related_to=dataset)
    assert len(activities) == 0
Пример #57
0
    def test_with_valid_user_self(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()

        login_user(user)

        form = OwnableForm(MultiDict({
            'owner': str(user.id)
        }))

        self.assertEqual(form.owner.data, user)

        form.validate()
        self.assertEqual(form.errors, {})

        ownable = Ownable()
        form.populate_obj(ownable)
        self.assertEqual(ownable.owner, user)
Пример #58
0
    def test_set_organization_if_permissions(self):
        Ownable, OwnableForm = self.factory()
        user = UserFactory()
        member = Member(user=user, role='editor')
        org = OrganizationFactory(members=[member])
        ownable = Ownable(owner=user)

        login_user(user)

        form = OwnableForm(MultiDict({
            'organization': str(org.id)
        }), ownable)

        self.assertTrue(form.validate())
        self.assertEqual(form.errors, {})

        form.populate_obj(ownable)
        self.assertIsNone(ownable.owner)
        self.assertEqual(ownable.organization, org)
Пример #59
0
    def test_pending_transfer_request_for_user(self):
        user = UserFactory()
        datasets = DatasetFactory.create_batch(2, owner=user)
        recipient = UserFactory()
        comment = faker.sentence()
        transfers = {}

        login_user(user)
        for dataset in datasets:
            transfer = request_transfer(dataset, recipient, comment)
            transfers[transfer.id] = transfer

        self.assertEqual(len(transfer_request_notifications(user)), 0)

        notifications = transfer_request_notifications(recipient)
        self.assertEqual(len(notifications), len(datasets))
        for dt, details in notifications:
            transfer = transfers[details['id']]
            self.assertEqual(details['subject']['class'], 'dataset')
            self.assertEqual(details['subject']['id'], transfer.subject.id)