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)
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)
def assert_transfer_started(self, subject, owner, recipient, comment): transfer = request_transfer(subject, recipient, comment) self.assertEqual(transfer.owner, owner) self.assertEqual(transfer.recipient, recipient) self.assertEqual(transfer.subject, subject) self.assertEqual(transfer.comment, comment) self.assertEqual(transfer.status, 'pending')
def assert_transfer_started(self, subject, owner, recipient, comment): transfer = request_transfer(subject, recipient, comment) assert transfer.owner == owner assert transfer.recipient == recipient assert transfer.subject == subject assert transfer.comment == comment assert transfer.status == 'pending'
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)
def test_pending_transfer_request_for_user(self): user = UserFactory() datasets = VisibleDatasetFactory.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 assert len(transfer_request_notifications(user)) == 0 notifications = transfer_request_notifications(recipient) assert len(notifications) == len(datasets) for dt, details in notifications: transfer = transfers[details['id']] assert details['subject']['class'] == 'dataset' assert details['subject']['id'] == transfer.subject.id
def test_pending_transfer_request_for_org(self): user = UserFactory() datasets = VisibleDatasetFactory.create_batch(2, owner=user) recipient = UserFactory() member = Member(user=recipient, role='editor') org = OrganizationFactory(members=[member]) comment = faker.sentence() transfers = {} login_user(user) for dataset in datasets: transfer = request_transfer(dataset, org, comment) transfers[transfer.id] = transfer assert len(transfer_request_notifications(user)) == 0 notifications = transfer_request_notifications(recipient) assert len(notifications) == len(datasets) for dt, details in notifications: transfer = transfers[details['id']] assert details['subject']['class'] == 'dataset' assert details['subject']['id'] == transfer.subject.id