예제 #1
0
    def test_serialize(self):
        file = models.OsfStorageFile(name='MOAR PYLONS', node=self.node_settings.owner)

        assert_equals(file.serialize(), {
            u'id': file._id,
            u'path': file.path,
            u'name': 'MOAR PYLONS',
            u'kind': 'file',
            u'version': 0,
            u'downloads': 0,
            u'size': None,
            u'modified': None,
            u'contentType': None,
            u'md5': None,
            u'sha256': None,
        })

        version = file.create_version(
            self.user,
            {
                'service': 'cloud',
                settings.WATERBUTLER_RESOURCE: 'osf',
                'object': '06d80e',
            }, {
                'size': 1234,
                'contentType': 'text/plain'
            })

        assert_equals(file.serialize(), {
            'id': file._id,
            'path': file.path,
            'name': 'MOAR PYLONS',
            'kind': 'file',
            'version': 1,
            'downloads': 0,
            'size': 1234,
            'modified': None,
            'contentType': 'text/plain',
            'md5': None,
            'sha256': None,
        })

        date = datetime.datetime.now()
        version.update_metadata({
            'modified': date.isoformat()
        })

        assert_equals(file.serialize(), {
            'id': file._id,
            'path': file.path,
            'name': 'MOAR PYLONS',
            'kind': 'file',
            'version': 1,
            'downloads': 0,
            'size': 1234,
            'modified': date.isoformat(),
            'contentType': 'text/plain',
            'md5': None,
            'sha256': None,
        })
예제 #2
0
 def test_get_file_guids_trashed_file_wo_guid(self):
     node = self.node_settings.owner
     file = models.OsfStorageFile(name='foo', node=node)
     file.save()
     file.delete()
     assert [] == models.OsfStorageFileNode.get_file_guids(
         '/' + file._id, provider='osfstorage', node=node)
예제 #3
0
    def test_get_file_guids_for_live_file(self):
        node = self.node_settings.owner
        file = models.OsfStorageFile(name='foo', node=node)
        file.save()

        file.get_guid(create=True)
        guid = file.get_guid()._id

        assert guid is not None
        assert guid in models.OsfStorageFileNode.get_file_guids(
            '/' + file._id, provider='osfstorage', node=node)
예제 #4
0
 def test_delete_allowed(self):
     node = self.node_settings.owner
     file = models.OsfStorageFile(name='Godspeed', node=node)
     file.save()
     assert_true(file.delete_allowed)
     node.preprint_file = file.stored_object
     node.save()
     assert_false(file.delete_allowed)
     node._has_abandoned_preprint = True
     node.save()
     assert_true(file.delete_allowed)
     file.check_in_or_out(self.user, self.user, save=True)
     file.save()
     assert_false(file.delete_allowed)