示例#1
0
 def setUp(self):
     # configure regular user
     user = get_user_model().objects.get(pk=2)
     user.set_password('user/password')
     user.save()
     f1 = IndexedFile(
         length=1,
         path="ds_user/test",
     )
     f1.save(refresh=True)
     f2 = IndexedFile(
         length=1,
         path="ds_user/test",
     )
     f2.save(refresh=True)
示例#2
0
    def index(self, file_object, pems):
        """Indexes an Agave response file object (json) to an IndexedFile"""
        res, search = self.get(file_object.system,
                               os.path.dirname(file_object.path.strip('/')),
                               os.path.basename(file_object.path.strip('/')))
        if res.hits.total > 1:
            for doc in res[1:]:
                doc.delete(ignore=404)
        if res.hits.total >= 1:
            document = res[0]
            file_object.pop('_links')
            file_object.pop('permissions')
            document.update(**file_object)
        else:
            document = IndexedFile(
                name=os.path.basename(file_object.path.strip('/')),
                path=os.path.dirname(file_object.path.strip('/')) or '/',
                lastModified=file_object.lastModified.isoformat(),
                length=file_object.length,
                format=file_object.format,
                mimeType=FileManager.mimetype_lookup(file_object,
                                                     settings.DEBUG),
                type=file_object.type,
                system=file_object.system,
            )
            if pems is None or not pems:
                document.permissions = [{
                    'username': self.username,
                    'permission': {
                        'read': True,
                        'write': True,
                        'execute': True
                    }
                }]
            document.save()

        if pems:
            for pem in pems:
                pem.pop('_links', None)
                pem.pop('internalUsername', None)
            document.update(permissions=pems)
        return document
示例#3
0
 def test_save(self, mock_save):
     f = IndexedFile()
     f.save()
     mock_save.assert_called_with()