def test_checked_out_merge(self): user = factories.AuthUserFactory() node = ProjectFactory(creator=user) osfstorage = node.get_addon('osfstorage') root_node = osfstorage.get_root() file = root_node.append_file('test_file') user_merge_target = factories.AuthUserFactory() file.check_in_or_out(user, user, save=True) file.reload() assert_equal(file.checkout, user) user_merge_target.merge_user(user) file.reload() assert_equal(user_merge_target.id, file.checkout.id)
def test_checkout_logs(self): non_admin = factories.AuthUserFactory() self.node.add_contributor(non_admin, permissions=['read', 'write']) self.node.save() self.file.check_in_or_out(non_admin, non_admin, save=True) self.file.reload() self.node.reload() assert_equal(self.file.checkout, non_admin) assert_equal(self.node.logs.latest().action, 'checked_out') assert_equal(self.node.logs.latest().user, non_admin) self.file.check_in_or_out(self.user, None, save=True) self.file.reload() self.node.reload() assert_equal(self.file.checkout, None) assert_equal(self.node.logs.latest().action, 'checked_in') assert_equal(self.node.logs.latest().user, self.user) self.file.check_in_or_out(self.user, self.user, save=True) self.file.reload() self.node.reload() assert_equal(self.file.checkout, self.user) assert_equal(self.node.logs.latest().action, 'checked_out') assert_equal(self.node.logs.latest().user, self.user) with assert_raises(FileNodeCheckedOutError): self.file.check_in_or_out(non_admin, None, save=True) with assert_raises(FileNodeCheckedOutError): self.file.check_in_or_out(non_admin, non_admin, save=True)
def setUp(self): super(TestOsfStorageCheckout, self).setUp() self.user = factories.AuthUserFactory() self.node = ProjectFactory(creator=self.user) self.osfstorage = self.node.get_addon('osfstorage') self.root_node = self.osfstorage.get_root() self.file = self.root_node.append_file('3005')
def test_attempt_delete_rented_file(self): user = factories.AuthUserFactory() file_checked = self.root_node.append_file('Newfile') file_checked.checkout = user file_checked.save() res = self.delete(file_checked, expect_errors=True) assert_equal(res.status_code, 403)
def test_attempt_delete_folder_with_rented_file(self): folder = self.root_node.append_folder('Hotel Events') user = factories.AuthUserFactory() file_checked = folder.append_file('Checkout time') file_checked.checkout = user file_checked.save() res = self.delete(folder, expect_errors=True) assert_equal(res.status_code, 403)
def test_attempt_delete_double_nested_folder_rented_file(self): folder = self.root_node.append_folder('One is not enough') folder_two = folder.append_folder('Two might be doe') user = factories.AuthUserFactory() file_checked = folder_two.append_file('We shall see') file_checked.checkout = user file_checked.save() res = self.delete(folder, expect_errors=True) assert_equal(res.status_code, 403)
def test_upload_fail_to_create_version_due_to_checkout(self): user = factories.AuthUserFactory() name = 'Gunter\'s noise.mp3' self.node_settings.get_root().append_file(name) root = self.node_settings.get_root() file = root.find_child_by_name(name) file.checkout = user file.save() res = self.send_upload_hook(root, payload=self.make_payload(name=name), expect_errors=True) assert_equal(res.status_code, 403)
def test_validate_location(self): creator = factories.AuthUserFactory() version = factories.FileVersionFactory.build(creator=creator, location={'invalid': True}) with assert_raises(ValidationError): version.save() version.location = { 'service': 'cloud', settings.WATERBUTLER_RESOURCE: 'osf', 'object': 'object', } version.save()
def test_remove_contributor_with_checked_file(self): user = factories.AuthUserFactory() models.Contributor.objects.create(node=self.node, user=user, visible=True) self.node.add_permission(user, ADMIN) self.file.check_in_or_out(self.user, self.user, save=True) self.file.reload() assert_equal(self.file.checkout, self.user) self.file.target.remove_contributors([self.user], save=True) self.file.reload() assert_equal(self.file.checkout, None)
def test_remove_contributor_with_checked_file(self): user = factories.AuthUserFactory() Contributor.objects.create(node=self.node, user=user, admin=True, write=True, read=True, visible=True) self.file.check_in_or_out(self.user, self.user, save=True) self.file.reload() assert_equal(self.file.checkout, self.user) self.file.node.remove_contributors([self.user], save=True) self.file.reload() assert_equal(self.file.checkout, None)
def setUp(self): super(TestOsfStorageFileVersion, self).setUp() self.user = factories.AuthUserFactory() self.mock_date = datetime.datetime(1991, 10, 31, tzinfo=pytz.UTC)