def test_update_document_check_in_status(self): """ tests DocumentService.update_document_check_in_status """ document_service = DocumentService(self.vault) # validate document checked in resp = document_service.get_document(self.document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], self.document_id) self.assertEqual(resp['data']['checkInStatus'], 0) # check out document in VV resp = document_service.update_document_check_in_status( self.document_id, 1) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], self.document_id) self.assertEqual(resp['data']['checkInStatus'], 1) # check in document in VV resp = document_service.update_document_check_in_status( self.document_id, 0) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], self.document_id) self.assertEqual(resp['data']['checkInStatus'], 0)
def test_get_document(self): """ tests DocumentService.get_document """ document_service = DocumentService(self.vault) resp = document_service.get_document(self.document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], self.document_id)
def test_get_document_index_field(self): """ tests DocumentService.get_document_index_field """ document_service = DocumentService(self.vault) resp = document_service.get_document_index_field( self.document_id, self.index_field_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['fieldId'], self.index_field_id)
def test_get_document_index_fields(self): """ tests DocumentService.get_document_index_fields """ document_service = DocumentService(self.vault) resp = document_service.get_document_index_fields(self.document_id) self.assertEqual(resp['meta']['status'], 200) index_fields = resp['data'] self.assertGreater(len(index_fields), 0) for index_field in index_fields: self.assertEqual(index_field['dataType'], 'DocumentIndexField')
def test_get_document_revisions(self): """ tests DocumentService.get_document_revisions """ document_service = DocumentService(self.vault) resp = document_service.get_document_revisions(self.document_id) self.assertEqual(resp['meta']['status'], 200) documents = resp['data'] self.assertGreater(len(documents), 0) for document in documents: self.assertEqual(document['documentId'], self.document_id)
def test_get_documents(self): """ tests DocumentService.get_documents """ document_service = DocumentService(self.vault) resp = document_service.get_documents(self.query_string) self.assertEqual(resp['meta']['status'], 200) documents = resp['data'] self.assertGreater(len(documents), 0) for document in documents: self.assertEqual(document['folderPath'], self.folder_path)
def test_get_document_revision_index_fields(self): """ tests DocumentService.get_document_revision_index_fields """ document_service = DocumentService(self.vault) resp = document_service.get_document_revision_index_fields( self.document_id, self.revision_id) self.assertEqual(resp['meta']['status'], 200) index_fields = resp['data'] self.assertGreater(len(index_fields), 0) for index_field in index_fields: self.assertEqual(index_field['fieldId'], self.index_field_id)
def test_update_document_index_field(self): """ tests DocumentService.update_document_index_field """ document_service = DocumentService(self.vault) expected_value = generate_random_uuid() resp = document_service.update_document_index_field( self.document_id, self.index_field_id, expected_value) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['fieldId'], self.index_field_id) self.assertEqual(resp['data']['value'], expected_value) new_value = document_service.get_document_index_field( self.document_id, self.index_field_id)['data']['value'] self.assertEqual(new_value, expected_value)
def test_update_document_index_fields(self): """ tests DocumentService.update_document_index_fields """ document_service = DocumentService(self.vault) expected_value = generate_random_uuid() fields_dict = str({self.index_field_name: expected_value}) resp = document_service.update_document_index_fields( self.document_id, fields_dict) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(len(resp['data']), 1) self.assertEqual( resp['data'][0]['fieldId'], self.index_field_id) # TODO: report issue with UUID label # self.assertEqual(resp['data'][0]['value'], expected_value) # TODO: uncomment when API resolves bug new_value = document_service.get_document_index_field( self.document_id, self.index_field_id)['data']['value'] self.assertEqual(new_value, expected_value)
def test_new_document_and_delete_document(self): """ tests DocumentService.new_document and DocumentService.delete_document """ document_service = DocumentService(self.vault) # new document resp = document_service.new_document(self.folder_id, 1, '_test_doc', '_test_doc description', '0', '_test.txt') self.assertEqual(resp['meta']['status'], 200) document_id = resp['data']['documentId'] revision_id = resp['data']['id'] # validate document exists in VV resp = document_service.get_document(document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], document_id) self.assertEqual(resp['data']['archive'], 0) # document not in recycle bin # delete document resp = document_service.delete_document(revision_id) self.assertEqual(resp['meta']['status'], 200) # validate document does not exist in VV resp = document_service.get_document(document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['archive'], 2) # document in recycle bin
def test_delete_document_revision(self): """ tests DocumentService.delete_document_revision """ document_service = DocumentService(self.vault) # new document resp = document_service.new_document(self.folder_id, 1, '_test_doc', '_test_doc description', '0', '_test.txt') self.assertEqual(resp['meta']['status'], 200) document_id = resp['data']['documentId'] empty_revision_id = resp['data']['id'] # validate document exists in VV resp = document_service.get_document(document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], document_id) self.assertEqual(resp['data']['archive'], 0) # document not in recycle bin # upload first revision file_upload_name = 'test_file.txt' expected_revision = generate_random_uuid() file_service = FileService(self.vault) resp = file_service.file_upload( document_id, 'unittest', expected_revision, 'unittest change reason', 'Released', '', 'unittest.txt', test_file_path + '/' + file_upload_name) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], document_id) self.assertEqual(resp['data']['revision'], expected_revision) new_file_id = resp['data']['id'] stream = file_service.get_file_stream(new_file_id) stream_stats = vars(stream) self.assertEqual(stream_stats['status_code'], 200) self.assertEqual(stream_stats['headers']['Content-Type'], 'application/octet-stream') # get new revision resp = document_service.get_document(document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], document_id) new_revision = resp['data']['id'] # upload second revision expected_revision = generate_random_uuid() file_service = FileService(self.vault) resp = file_service.file_upload( document_id, 'unittest', expected_revision, 'unittest change reason', 'Released', '', 'unittest.txt', test_file_path + '/' + file_upload_name) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], document_id) self.assertEqual(resp['data']['revision'], expected_revision) new_file_id = resp['data']['id'] stream = file_service.get_file_stream(new_file_id) stream_stats = vars(stream) self.assertEqual(stream_stats['status_code'], 200) self.assertEqual(stream_stats['headers']['Content-Type'], 'application/octet-stream') # get new revision resp = document_service.get_document(document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], document_id) newest_revision = resp['data']['id'] # validate newest revision has changed self.assertNotEqual(new_revision, newest_revision) # validate document is not deleted resp = document_service.get_document_revision(document_id, new_revision) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['archive'], 0) # document not in recycle bin # validate number of revisions resp = document_service.get_document_revisions(document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(len(resp['data']), 3) revisions = [document['id'] for document in resp['data']] self.assertIn(empty_revision_id, revisions) self.assertIn(new_revision, revisions) self.assertIn(newest_revision, revisions) # delete document resp = document_service.delete_document_revision(new_revision) self.assertEqual(resp['meta']['status'], 200) # validate document is deleted resp = document_service.get_document_revisions(document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(len(resp['data']), 2) revisions = [document['id'] for document in resp['data']] self.assertIn(empty_revision_id, revisions) self.assertNotIn(new_revision, revisions) self.assertIn(newest_revision, revisions) # validate newest document is still newest_revision resp = document_service.get_document(document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['documentId'], document_id) self.assertEqual(resp['data']['id'], newest_revision) # delete document resp = document_service.delete_document(newest_revision) self.assertEqual(resp['meta']['status'], 200) # validate document does not exist in VV resp = document_service.get_document(document_id) self.assertEqual(resp['meta']['status'], 200) self.assertEqual(resp['data']['archive'], 2) # document in recycle bin
def setup_test_suite(): """ updates parameters.json for VVRestTestSuite """ vault = get_vault_object() document_service = DocumentService(vault) folder_service = FolderService(vault) form_service = FormService(vault) index_field_service = IndexFieldService(vault) site_service = SiteService(vault) group_service = GroupService(vault) user_service = UserService(vault) file_service = FileService(vault) # create folder expected_folder_name = generate_random_uuid() expected_folder_description = expected_folder_name + ' description' resp = folder_service.new_folder(expected_folder_name, expected_folder_description, True) folder_id = resp['data']['id'] folder_path = '/' + expected_folder_name query_string = "folderPath='" + folder_path + "'" # create sub folder expected_sub_folder_name = generate_random_uuid() expected_sub_folder_description = expected_sub_folder_name + ' description' resp = folder_service.new_sub_folder(folder_id, expected_sub_folder_name, expected_sub_folder_description, True) assert resp['meta']['status'] == 200 sub_folder_id = resp['data']['id'] sub_folder_path = folder_path + '/' + expected_sub_folder_name # create index field definition expected_label = get_random_string(10) expected_description = expected_label + ' description' resp = index_field_service.create_index_field(expected_label, expected_description, 1, True, 'DEFAULT') assert resp['meta']['status'] == 200 index_field_id = resp['data']['id'] index_field_name = expected_label # relate index field definition to folder resp = index_field_service.relate_index_field_to_folder( index_field_id, folder_id) assert resp['meta']['status'] == 200 # create document resp = document_service.new_document(folder_id, 1, '_test_doc', '_test_doc description', '0', '_test.txt') assert resp['meta']['status'] == 200 document_id = resp['data']['documentId'] # create document revision (file upload) expected_revision = generate_random_uuid() resp = file_service.file_upload(document_id, 'unittest', expected_revision, 'unittest change reason', 'Released', '', 'unittest.txt', test_file_path + '/test_file.txt') assert resp['meta']['status'] == 200 # get document revision resp = document_service.get_document(document_id) assert resp['meta']['status'] == 200 document_revision_id = resp['data']['id'] # create site expected_site_name = generate_random_uuid() expected_site_description = expected_site_name + ' description' resp = site_service.create_site(expected_site_name, expected_site_description) assert resp['meta']['status'] == 200 site_id = resp['data']['id'] # create new group expected_group_name = generate_random_uuid() expected_group_description = expected_group_name + ' description' resp = group_service.create_group(expected_group_name, expected_group_description, site_id) assert resp['meta']['status'] == 200 group_id = resp['data']['id'] # create user user_id = generate_random_uuid() first_name = 'test' last_name = 'test' email = '*****@*****.**' password = '******' resp = user_service.create_user(site_id, user_id, first_name, last_name, email, password) assert resp['meta']['status'] == 200 user_id = resp['data']['id'] # add user to group resp = group_service.add_user_to_group(group_id, user_id) assert resp['meta']['status'] == 201 # get form params TODO: remove with API update parameters_json = get_parameters_json() form_template_id = parameters_json['form_template_id'] form_instance_field_name = parameters_json['form_template_field_name'] form_template_name = parameters_json['form_template_name'] # create form instance form_instance_field_value = generate_random_uuid() payload = {form_instance_field_name: form_instance_field_value} resp = form_service.create_form_instance(form_template_id, payload) assert resp['meta']['status'] == 201 form_instance_id = resp['data']['revisionId'] form_instance_name = resp['data']['instanceName'] # setup test_parameters json if os.path.isfile(parameters_file): parameters = get_parameters_json() parameters['folder_path'] = folder_path parameters['query_string'] = query_string parameters['document_id'] = document_id parameters['document_revision_id'] = document_revision_id parameters['index_field_id'] = index_field_id parameters['index_field_name'] = index_field_name parameters['folder_id'] = folder_id parameters['folder_name'] = expected_folder_name parameters['sub_folder_id'] = sub_folder_id parameters['sub_folder_path'] = sub_folder_path parameters['site_id'] = site_id parameters['group_id'] = group_id parameters['user_id'] = user_id parameters['form_instance_name'] = form_instance_name parameters['form_instance_id'] = form_instance_id parameters['form_instance_field_value'] = form_instance_field_value else: parameters = dict(folder_path=folder_path, query_string=query_string, document_id=document_id, document_revision_id=document_revision_id, index_field_id=index_field_id, index_field_name=index_field_name, folder_id=folder_id, folder_name=expected_folder_name, sub_folder_id=sub_folder_id, sub_folder_path=sub_folder_path, site_id=site_id, group_id=group_id, user_id=user_id, form_instance_name=form_instance_name, form_instance_id=form_instance_id, form_instance_field_value=form_instance_field_value) with open(parameters_file, 'w+') as parameters_json: json.dump(parameters, parameters_json) # write test_parameters to parameters.json