示例#1
0
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
示例#2
0
 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
示例#3
0
    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
示例#4
0
 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
示例#5
0
    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
示例#6
0
    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
示例#7
0
 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
示例#8
0
    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
示例#9
0
    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)
示例#10
0
    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
示例#11
0
    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
示例#12
0
        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)