def test_project_delete(self, user1): conn = get_connection(user1) user_name = conn.getUser().getName() django_client = self.new_django_client(user_name, user_name) project = ProjectI() project.name = rstring('test_project_delete') project.description = rstring('Test update') project = get_update_service(user1).saveAndReturnObject(project) version = api_settings.API_VERSIONS[-1] project_url = reverse('api_project', kwargs={'api_version': version, 'object_id': project.id.val}) # Before delete, we can read pr_json = get_json(django_client, project_url) assert pr_json['data']['Name'] == 'test_project_delete' # Delete delete_json(django_client, project_url, {}) # Get should now return 404 rsp = get_json(django_client, project_url, status_code=404) assert rsp['message'] == 'Project %s not found' % project.id.val # Delete (again) should return 404 rsp = delete_json(django_client, project_url, {}, status_code=404) assert rsp['message'] == 'Project %s not found' % project.id.val save_url = reverse('api_save', kwargs={'api_version': version}) # TODO: Try to save deleted object - should return ApiException # see https://trello.com/c/qWNt9vLN/178-save-deleted-object with pytest.raises(AssertionError): rsp = put_json(django_client, save_url, pr_json, status_code=400) assert rsp['message'] == 'Project %s not found' % project.id.val
def test_project_update(self, user1): conn = get_connection(user1) group = conn.getEventContext().groupId user_name = conn.getUser().getName() django_client = self.new_django_client(user_name, user_name) project = ProjectI() project.name = rstring('test_project_update') project.description = rstring('Test update') project = get_update_service(user1).saveAndReturnObject(project) # Update Project in 2 ways... version = api_settings.API_VERSIONS[-1] project_url = reverse('api_project', kwargs={ 'api_version': version, 'object_id': project.id.val }) save_url = reverse('api_save', kwargs={'api_version': version}) # 1) Get Project, update and save back rsp = get_json(django_client, project_url) project_json = rsp['data'] assert project_json['Name'] == 'test_project_update' project_json['Name'] = 'new name' rsp = put_json(django_client, save_url, project_json) project_json = rsp['data'] assert project_json['@id'] == project.id.val assert project_json['Name'] == 'new name' # Name has changed assert project_json['Description'] == 'Test update' # No change # 2) Put from scratch (will delete empty fields, E.g. Description) save_url += '?group=' + str(group) payload = {'Name': 'updated name', '@id': project.id.val} # Test error message if we don't pass @type: rsp = put_json(django_client, save_url, payload, status_code=400) assert rsp['message'] == 'Need to specify @type attribute' # Add @type and try again payload['@type'] = project_json['@type'] rsp = put_json(django_client, save_url, payload) project_json = rsp['data'] assert project_json['@id'] == project.id.val assert project_json['Name'] == 'updated name' assert 'Description' not in project_json # Get project again to check update rsp = get_json(django_client, project_url) pr_json = rsp['data'] assert pr_json['Name'] == 'updated name' assert 'Description' not in pr_json # Now add description and save again pr_json['Description'] = 'New test description update' put_json(django_client, save_url, pr_json) # Read to check rsp = get_json(django_client, project_url) assert rsp['data']['Description'] == 'New test description update'
def test_project(self): """Tests BlitzObjectWrapper.getName() returns string""" name = u'Pròjëct ©ψ' desc = u"Desc Φωλ" project = ProjectI() project.name = rstring(name) project.description = rstring(desc) proj = MockConnection(project).getObject("Project", 1) assert proj.getName() == name.encode('utf8') assert proj.name == name assert proj.getDescription() == desc.encode('utf8') assert proj.description == desc
def create_project(with_datasets=False, with_images=False): project = ProjectI() project.id = rlong(1L) project.name = rstring("the_name") project.description = rstring("the_description") dataset_count = 2 if not with_datasets: return project for dataset_id in range(0, dataset_count): dataset = DatasetI() dataset.id = rlong(dataset_id + 1) dataset.name = rstring("dataset_name_%d" % (dataset_id + 1)) dataset.description = rstring("dataset_description_%d" % (dataset_id + 1)) project.linkDataset(dataset) if not with_images: continue for image_id in range(1, 3): image_id = (dataset_id * dataset_count) + image_id dataset.linkImage(create_image(image_id)) return project
def create_project(with_datasets=False, with_images=False): project = ProjectI() project.id = rlong(1) project.name = rstring('the_name') project.description = rstring('the_description') dataset_count = 2 if not with_datasets: return project for dataset_id in range(0, dataset_count): dataset = DatasetI() dataset.id = rlong(dataset_id + 1) dataset.name = rstring('dataset_name_%d' % (dataset_id + 1)) dataset.description = rstring('dataset_description_%d' % (dataset_id + 1)) project.linkDataset(dataset) if not with_images: continue for image_id in range(1, 3): image_id = (dataset_id * dataset_count) + image_id dataset.linkImage(create_image(image_id)) return project
def project(): o = ProjectI() o.id = rlong(1L) o.name = rstring('the_name') o.description = rstring('the_description') return o