def start_integration(integration_type): logger.logs("Running PRM Leankit Integration", 'info') db_logger = DBLoggerFactory.logger id = TestDetails.test_id uuid = TestDetails.test_uuid integration = IntegrationServer() integ_status = integration.start(id, uuid, db_logger, integration_type) assert integ_status
def create(self, father_key, name='Task', encoding='utf-8'): logger.logs('\n Creating PVE task \n', 'info') description = self.helper.get_name(name) self.list_create_task_values = { 'Description': description, 'FatherKey': father_key } self.task.create(self.list_create_task_values, encoding) task_key = self.task.verify_created_key status = self.verify_create(encoding) return description, task_key, status
def delete(self, list_of_dict, encoding='utf-8'): soap_delete_action, soap_payload = self.payload_gen.get_soap_details( 'task', 'delete', list_of_dict) soap = self.request.initialize_soap_request(self.cert, soap_payload, soap_delete_action) response = self.request.post(self.soap_wsdl, soap.body, soap.header, encoding) self.verify_deleted_key = list_of_dict[0]['arr:string'] logger.logs( 'Deleted Task with Name as: %(description)s and Key as %(key)s' % { 'description': self.verify_description, 'key': self.verify_deleted_key }, 'info') return response
def update(self, task_key, father_key, milestone='false', encoding='utf-8', **kwargs): logger.logs('\n Updating PVE task \n', 'info') update_desc = self.helper.get_name('Updated_Task') self.dict_node_values = { 'Description': update_desc, 'Key': task_key, 'FatherKey': father_key, 'IsMilestone': milestone } self.dict_node_values.update(**kwargs) self.task.update(self.dict_node_values, 'update', encoding) status = self.verify_update(encoding) return update_desc, status
def create(self, list_of_dict, encoding='utf-8'): soap_create_action, soap_payload = self.payload_gen.get_soap_details_v1( 'task', 'create', list_of_dict) soap = self.request.initialize_soap_request(self.cert, soap_payload, soap_create_action) response = self.request.post(self.soap_wsdl, soap.body, soap.header, encoding) self.verify_created_key = self.parse_wrapper.get_values( response.text)[0] self.verify_description = list_of_dict['Description'] self.verify_father_key = list_of_dict['FatherKey'] logger.logs( 'Created Task with Name as: %(description)s and Key as %(key)s' % { 'description': self.verify_description, 'key': self.verify_created_key }, 'info') return response
def verify_update(self, encoding='utf-8'): logger.logs('\n Verifying the updated task \n', 'info') result, remarks = self.task.verify_update(encoding) step_desc = 'Update and Verification of the Task' step_input = 'Task: %s' % self.dict_node_values last_run = self.helper.get_time() update_status = False step_result = 0 if result: step_result = 1 update_status = True qhandler.insert_into_step_details( self.id, self.uuid, self.env.pve.name, self.env.pve.db_name, self.env.external_env.name, self.env.integ.name, step_desc, step_input, step_result, remarks, last_run) logger.logs('Task update verification: %s' % update_status, 'info') return update_status
def verify_update(self, encoding='utf-8'): status = True lst_status = [] self.remarks = 'Verification:\n' try: self.construct_verify_dict(encoding) for key in self.snap_shot_dct: if key in self.lst_date_keys: status = self.compare_date_keys(key) else: status = self.compare_string_keys(key) lst_status.append(status) status = all(lst_status) except: logger.logs( 'Execution failed in Class: Task inside Method: verify_update()', 'error') self.remarks += 'Task not updated due to exception in Class: Task inside Method: verify_update() \n' status = False finally: return status, self.remarks
def verify_delete(self, encoding='utf-8'): status = False try: if self.verify_deleted_key: delete_response = self.read(self.verify_deleted_key, encoding) error_msg = self.parse_wrapper.get_values( delete_response.text, node='b:ErrorMessage')[0] expected_msg = 'Unable to find task:' if AssertCompare.is_substring_present(expected_msg, error_msg): status = True self.remarks += '%s task deleted successfully\n' % self.verify_deleted_key else: self.remarks += '%s task not deleted successfully\n' % self.verify_deleted_key except: logger.logs( 'Execution failed in Class: Task inside Method: verify_delete()', 'error') self.remarks += 'Task not deleted due to exception in Class: Task inside Method: verify_delete() \n' status = False finally: return status, self.remarks
def run(self, run_id): logger.logs('Running Test case %s' % self.id, 'info') logger.logs('Description for the Test case %s' % self.__doc__, 'info') try: self.create_step() self.update_step() except: logger.logs('!!! EXCEPTION OCCURRED in Test Case: %s run method. Please troubleshoot !!!' % self.id, 'error') logger.logs('Exception Trace: \n %s', traceback.print_exc()) self.all_step_results.append(False) finally: test_result = all(self.all_step_results)
def verify_create(self, encoding='utf-8'): status = True self.remarks = 'Verification:\n' try: if self.verify_created_key: resp = self.read(self.verify_created_key, encoding) description = self.parse_wrapper.get_values( resp.text, node='d:Description')[0] father_key = self.parse_wrapper.get_values( resp.text, node='d:FatherKey')[0] verify_dct = { 'verify_description': description, 'verify_father_key': father_key } snap_shot_dct = self.__dict__ for key in verify_dct: if type(snap_shot_dct[key]) is int: snap_shot_dct[key] = (str(snap_shot_dct[key])).replace( " ", "") if AssertCompare.is_string_equal(verify_dct[key], snap_shot_dct[key]): self.remarks += '%s assertion passed\n' % key else: self.remarks += '%s assertion failed Expected: %s Actual: %s\n' % ( key, snap_shot_dct[key], verify_dct[key]) status = False except: logger.logs( 'Execution failed in Class: Task inside Method: verify_create()', 'error') self.remarks += 'Task not created due to exception in Class: Task inside Method: verify_create() \n' status = False finally: return status, self.remarks
def update_old(self, task_key, father_key, milestone='false', encoding='utf-8', **kwargs): logger.logs('\n Updating PVE task \n', 'info') update_desc = self.helper.get_name('Updated_Task') if milestone == 'true' and 'schedule_start' in kwargs: self.list_dict_node_values = [{ r'ns1:Description': update_desc, r'ns1:Key': task_key, r'ns1:FatherKey': father_key, r'ns1:IsMilestone': milestone, r'ns1:ScheduleStartDate': kwargs['schedule_start'], r'ns1:EnterProgress': kwargs['enter_progress'], r'ns1:Duration': 0 }] operation = 'update' else: if 'Actual_Finish' in kwargs and 'Actual_Start' in kwargs: self.list_dict_node_values = [{ r'ns1:Description': update_desc, r'ns1:Key': task_key, r'ns1:FatherKey': father_key, r'ns1:IsMilestone': milestone, r'ns1:EnterProgress': kwargs['enter_progress'], r'ns1:ActualFinishDate': kwargs['Actual_Finish'], r'ns1:ActualStartDate': kwargs['Actual_Start'] }] operation = 'update_actual' elif 'Actual_Start' in kwargs and 'Schedule_start' in kwargs: self.list_dict_node_values = [{ r'ns1:Description': update_desc, r'ns1:Key': task_key, r'ns1:FatherKey': father_key, r'ns1:EnterProgress': kwargs['enter_progress'], r'ns1:ActualStartDate': kwargs['Actual_Start'], r'ns1:ScheduleStartDate': kwargs['Schedule_start'], r'ns1:ScheduleFinishDate': kwargs['Schedule_Finish'] }] operation = 'update_start_date' else: self.list_dict_node_values = [{ r'ns1:Description': update_desc, r'ns1:Key': task_key, r'ns1:FatherKey': father_key, r'ns1:EnterProgress': kwargs['enter_progress'], r'ns1:ScheduleFinishDate': kwargs['Schedule_Finish'], r'ns1:ScheduleStartDate': kwargs['Schedule_start'] }] operation = 'update_schedule' self.task.update(self.list_dict_node_values, operation, encoding) status = self.verify_update(encoding) return update_desc, status
try: self.create_step() self.update_step() except: logger.logs('!!! EXCEPTION OCCURRED in Test Case: %s run method. Please troubleshoot !!!' % self.id, 'error') logger.logs('Exception Trace: \n %s', traceback.print_exc()) self.all_step_results.append(False) finally: test_result = all(self.all_step_results) # self.finalize_step(self.id, self.uuid, test_result, run_id) if __name__ == '__main__': args = sys.argv if len(args) == 8: pve_env = args[1] pve_dsn = args[2] pve_db = args[3] rally_env = args[4] rally_user = args[5] integ_env = args[6] run_id = args[7] test_obj = TestCase(pve_env, pve_dsn, pve_db, rally_env, rally_user, integ_env) test_obj.run(run_id) else: logger.logs('Oops! You have not provided enough parameters', 'warning') logger.logs('Usage python.exe tc_<id> pve_env pve_db rally_env integ_env', 'warning') sys.exit(-1)