def test_export_to_import_new_provider_with_models_out_of_sync(self): update_taxonomies('test_bepress_taxonomy.json') res = self.view.get(self.request) content_dict = json.loads(res.content) content_dict['fields']['_id'] = 'new_id' content_dict['fields']['name'] = 'Awesome New Name' content_dict['fields'][ 'new_field'] = 'this is a new field, not in the model' del content_dict['fields'][ 'description'] # this is a old field, removed from the model JSON data = StringIO(unicode(json.dumps(content_dict), 'utf-8')) self.import_request.FILES['file'] = InMemoryUploadedFile( data, None, 'data', 'application/json', 500, None, {}) res = self.import_view.post(self.import_request) provider_id = ''.join([i for i in res.url if i.isdigit()]) new_provider = PreprintProvider.objects.get(id=provider_id) nt.assert_equal(res.status_code, 302) nt.assert_equal(new_provider._id, 'new_id') nt.assert_equal(new_provider.name, 'Awesome New Name')
def test_export_to_import_new_provider(self): update_taxonomies('test_bepress_taxonomy.json') res = self.view.get(self.request) content_dict = json.loads(res.content) content_dict['fields']['_id'] = 'new_id' content_dict['fields']['name'] = 'Awesome New Name' data = StringIO(unicode(json.dumps(content_dict), 'utf-8')) self.import_request.FILES['file'] = InMemoryUploadedFile( data, None, 'data', 'application/json', 500, None, {}) res = self.import_view.post(self.import_request) provider_id = ''.join([i for i in res.url if i.isdigit()]) new_provider = PreprintProvider.objects.get(id=provider_id) nt.assert_equal(res.status_code, 302) nt.assert_equal(new_provider._id, 'new_id') nt.assert_equal(new_provider.name, 'Awesome New Name') nt.assert_equal(new_provider.subjects.all().count(), 1) nt.assert_equal(new_provider.licenses_acceptable.all().count(), 1) nt.assert_equal(new_provider.subjects.all()[0].text, self.subject.text) nt.assert_equal(new_provider.licenses_acceptable.all()[0].license_id, 'NONE')
def handle(self, *args, **options): reverse = options.get('reverse', False) dry_run = options.get('dry_run', False) add_data = options.get('add_data', False) if not dry_run: script_utils.add_file_logger(logger, __file__) with transaction.atomic(): if reverse: remove_preprint_providers() remove_registration_providers() remove_collection_providers() else: if not PreprintProvider.load('osf'): update_taxonomies('bepress_taxonomy.json') populate_preprint_providers() populate_registration_providers() populate_collection_providers(add_data) if dry_run: raise RuntimeError('Dry run, transaction rolled back.')
def test_export_to_import_new_provider_with_models_out_of_sync(self): update_taxonomies('test_bepress_taxonomy.json') res = self.view.get(self.request) content_dict = json.loads(res.content) content_dict['fields']['name'] = 'Awesome New Name' content_dict['fields']['new_field'] = 'this is a new field, not in the model' del content_dict['fields']['description'] # this is a old field, removed from the model JSON data = StringIO(unicode(json.dumps(content_dict), 'utf-8')) self.import_request.FILES['file'] = InMemoryUploadedFile(data, None, 'data', 'application/json', 500, None, {}) res = self.import_view.post(self.import_request) provider_id = ''.join([i for i in res.url if i.isdigit()]) new_provider = PreprintProvider.objects.get(id=provider_id) nt.assert_equal(res.status_code, 302) nt.assert_equal(new_provider.name, 'Awesome New Name')
def test_export_to_import_new_provider(self): update_taxonomies('test_bepress_taxonomy.json') res = self.view.get(self.request) content_dict = json.loads(res.content) content_dict['fields']['name'] = 'Awesome New Name' data = StringIO(unicode(json.dumps(content_dict), 'utf-8')) self.import_request.FILES['file'] = InMemoryUploadedFile(data, None, 'data', 'application/json', 500, None, {}) res = self.import_view.post(self.import_request) provider_id = ''.join([i for i in res.url if i.isdigit()]) new_provider = PreprintProvider.objects.get(id=provider_id) nt.assert_equal(res.status_code, 302) nt.assert_equal(new_provider.name, 'Awesome New Name') nt.assert_equal(new_provider.subjects.all().count(), 1) nt.assert_equal(new_provider.licenses_acceptable.all().count(), 1) nt.assert_equal(new_provider.subjects.all()[0].text, self.subject.text) nt.assert_equal(new_provider.licenses_acceptable.all()[0].license_id, 'NONE')