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)
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
def test_save(self, mock_save): f = IndexedFile() f.save() mock_save.assert_called_with()