def test_purge_organizations(self): with self.autoindex(): org = Organization.objects.create(name='delete me', description='XXX') resources = [ResourceFactory() for _ in range(2)] dataset = DatasetFactory(resources=resources, organization=org) # Upload organization's logo file = create_test_image() user = AdminFactory() self.login(user) response = self.post(url_for('api.organization_logo', org=org), {'file': (file, 'test.png')}, json=False) self.assert200(response) # Delete organization response = self.delete(url_for('api.organization', org=org)) self.assert204(response) tasks.purge_organizations() # Check organization's logo is deleted self.assertEqual(list(storages.avatars.list_files()), []) dataset = Dataset.objects(id=dataset.id).first() self.assertIsNone(dataset.organization) organization = Organization.objects(name='delete me').first() self.assertIsNone(organization) indexed_dataset = DatasetSearch.get(id=dataset.id, using=es.client, index=es.index_name) self.assertIsNone(indexed_dataset.organization)
def test_purge_organizations(self): org = Organization.objects.create(name='delete me', description='XXX') resources = [ResourceFactory() for _ in range(2)] dataset = DatasetFactory(resources=resources, organization=org) # Upload organization's logo file = create_test_image() user = AdminFactory() self.login(user) response = self.post( url_for('api.organization_logo', org=org), {'file': (file, 'test.png')}, json=False) self.assert200(response) transfer_to_org = Transfer.objects.create( owner=user, recipient=org, subject=dataset, comment='comment', ) transfer_from_org = Transfer.objects.create( owner=org, recipient=user, subject=dataset, comment='comment', ) oauth_client = OAuth2Client.objects.create( name='test-client', owner=user, organization=org, redirect_uris=['https://test.org/callback'], ) # Delete organization response = self.delete(url_for('api.organization', org=org)) self.assert204(response) tasks.purge_organizations() oauth_client.reload() assert oauth_client.organization is None assert Transfer.objects.filter(id=transfer_from_org.id).count() == 0 assert Transfer.objects.filter(id=transfer_to_org.id).count() == 0 # Check organization's logo is deleted self.assertEqual(list(storages.avatars.list_files()), []) dataset = Dataset.objects(id=dataset.id).first() self.assertIsNone(dataset.organization) organization = Organization.objects(name='delete me').first() self.assertIsNone(organization)
def purge(): '''permanently remove data flagged as deleted''' log.info('Purging datasets') purge_datasets() log.info('Purging reuses') purge_reuses() log.info('Purging organizations') purge_organizations() log.info('Done')
def purge(): '''permanently remove data flagged as deleted''' log.info('Purging datasets') purge_datasets() log.info('Purging reuses') purge_reuses() log.info('Purging organizations') purge_organizations() log.info('Done')
def test_purge_organizations(self): with self.autoindex(): org = Organization.objects.create( name='delete me', deleted='2016-01-01', description='XXX') resources = [ResourceFactory() for _ in range(2)] dataset = DatasetFactory(resources=resources, organization=org) tasks.purge_organizations() dataset = Dataset.objects(id=dataset.id).first() self.assertIsNone(dataset.organization) organization = Organization.objects(name='delete me').first() self.assertIsNone(organization) indexed_dataset = DatasetSearch.get(id=dataset.id, using=es.client, index=es.index_name) self.assertIsNone(indexed_dataset.organization)
def test_purge_organizations(self): with self.autoindex(): org = Organization.objects.create(name='delete me', deleted='2016-01-01', description='XXX') resources = [ResourceFactory() for _ in range(2)] dataset = DatasetFactory(resources=resources, organization=org) tasks.purge_organizations() dataset = Dataset.objects(id=dataset.id).first() self.assertEqual(dataset.organization, None) organization = Organization.objects(name='delete me').first() self.assertEqual(organization, None) indexed_dataset = DatasetSearch.get(id=dataset.id, using=es.client, index=es.index_name) self.assertEqual(indexed_dataset.organization, '')
def purge(datasets=False, reuses=False, organizations=False): ''' Permanently remove data flagged as deleted. If no model flag is given, all models are purged. ''' purge_all = not any((datasets, reuses, organizations)) if purge_all or datasets: log.info('Purging datasets') purge_datasets() if purge_all or reuses: log.info('Purging reuses') purge_reuses() if purge_all or organizations: log.info('Purging organizations') purge_organizations() log.info('Done')
def purge(datasets, reuses, organizations): ''' Permanently remove data flagged as deleted. If no model flag is given, all models are purged. ''' purge_all = not any((datasets, reuses, organizations)) if purge_all or datasets: log.info('Purging datasets') purge_datasets() if purge_all or reuses: log.info('Purging reuses') purge_reuses() if purge_all or organizations: log.info('Purging organizations') purge_organizations() success('Done')