def add_domain_result(*args, **kwargs):
    log.info('check the result of step join tc domain')
    case_name = kwargs.get("case_name")
    result_file = kwargs.get("report_file")
    if check_icon('domain_login_user') or check_icon('domain_login_pwd'):
        steps = {
            'step_name': 'verify add domain and reboot success',
            'result': 'Pass',
            'expect': 'add domain success',
            'actual': 'success',
            'note': ''
        }
        common_function.update_cases_result(result_file, case_name, steps)
    else:
        error_pic = os.path.join(common_function.get_current_dir(),
                                 r'Test_Report', 'img',
                                 'verify_add_domain_result.png')
        picture_operator.capture_screen(error_pic)
        steps = {
            'step_name': 'verify add domain and reboot success',
            'result': 'Fail',
            'expect': 'add domain success',
            'actual': 'fail',
            'note': '{}'.format(error_pic)
        }
        common_function.update_cases_result(result_file, case_name, steps)
        domain_login(user_name='!#$%^', password="******")
        reset_all_settings(num=0)
        return False
def verify_two_account(*args, **kwargs):
    case_name = kwargs.get("case_name")
    result_file = kwargs.get("report_file")
    log.info('verify two accounts art listed')
    lock_screen()
    if check_account('with_vdi'):
        steps = {
            'step_name': 'verify two accounts art listed',
            'result': 'Pass',
            'expect': 'correct',
            'actual': 'correct',
            'note': ''
        }
        common_function.update_cases_result(result_file, case_name, steps)
    else:
        error_pic = os.path.join(
            common_function.get_current_dir(), r'Test_Report', 'img',
            'verify_domain_and_rdp_two_account_are_listed.png')
        picture_operator.capture_screen(error_pic)
        steps = {
            'step_name': 'verify two accounts art listed',
            'result': 'Fail',
            'expect': 'correct',
            'actual': 'wrong',
            'note': ''
        }
        common_function.update_cases_result(result_file, case_name, steps)
        reset_all_settings(num=0)
        return False
def login_domain_user(*args, **kwargs):
    case_name = kwargs.get("case_name")
    result_file = kwargs.get("report_file")
    log.info('2.1. Login with  !#$%^  Shanghai2010')
    time.sleep(10)
    domain_login(user_name='!#$%^', password="******")
    time.sleep(5)
    if check_account('start') or check_account('domain_icon'):
        steps = {
            'step_name': 'login domain account success',
            'result': 'Pass',
            'expect': 'login success',
            'actual': 'success',
            'note': ''
        }
        common_function.update_cases_result(result_file, case_name, steps)
    else:
        error_pic = os.path.join(common_function.get_current_dir(),
                                 r'Test_Report', 'img',
                                 'login_domain_user_result.png')
        picture_operator.capture_screen(error_pic)
        steps = {
            'step_name': 'login domain account success',
            'result': 'Fail',
            'expect': 'login success',
            'actual': 'fail',
            'note': '{}'.format(error_pic)
        }
        common_function.update_cases_result(result_file, case_name, steps)
        reset_all_settings(num=0)
        return False
def login_remote(*args, **kwargs):
    case_name = kwargs.get("case_name")
    result_file = kwargs.get("report_file")
    log.info('2.2. Start a remote session with your SH account.')
    SwitchThinProMode(switch_to='user')
    conn = kwargs.get('conn')
    if start_remote('logon', conn=conn):
        steps = {
            'step_name': 'login a remote session (RDP)',
            'result': 'Pass',
            'expect': '',
            'actual': '',
            'note': ''
        }
        common_function.update_cases_result(result_file, case_name, steps)
    else:
        log.info('remote session login fail')
        steps = {
            'step_name': 'login a remote session (RDP)',
            'result': 'Fail',
            'expect': 'login success',
            'actual': 'vdi login fail',
            'note': ''
        }
        common_function.update_cases_result(result_file, case_name, steps)
        reset_all_settings(num=0)
        return False
def set_proxy_common(proxy_test, proxy_server, case_name, report_file):
    protocol_name = proxy_test.protocol
    msg = 'step - - set {} proxy to {}'.format(protocol_name, proxy_server)
    log.info(msg)
    steps = {
        'step_name': '',
        'result': '',
        'expect': '',
        'actual': '',
        'note': ''
    }
    if proxy_test.set_proxy(proxy_server):
        step_rs = 'Pass'
        fun_rs = True
        msg2 = 'succeed to clear http proxy'
    else:
        step_rs = 'Fail'
        fun_rs = False
        msg2 = 'Failed to clear http proxy'
    msg3 = 'network panel can be edit'
    steps['step_name'] = msg
    steps['actual'] = msg2
    steps['expect'] = msg3
    steps['result'] = step_rs
    log.info('test {}'.format(step_rs))
    common_function.update_cases_result(report_file, case_name, steps)
    # if fun_rs:
    #     proxy_test.reboot()
    # else:
    #     proxy_test.reset_env_halfway()
    return fun_rs
Ejemplo n.º 6
0
def dynamic_ip_check(case_name, result_file, wired):
    log.info("set connection method -> automatic")
    wired.open_network_wired_dialog()
    wired.set_dynamic_ip()
    time.sleep(5)
    log.info("open network wired check current connection method")
    wired.open_network_wired_dialog()
    res = wait_element(case_pic("connection_method", ip_mode='dynamic'))
    if res:
        steps = {
            'step_name': 'check dynamic connection method set success',
            'result': 'Pass',
            'expect': '',
            'actual': '',
            'note': ''
        }
        update_cases_result(result_file, case_name, steps)
    else:
        method = get_connection_method()
        steps = {
            'step_name': 'check dynamic connection method set success',
            'result': 'Fail',
            'expect': '',
            'actual': 'the connection method automatic',
            'note': 'connection method {}'.format(method)
        }
        update_cases_result(result_file, case_name, steps)
        wired.close_control_panel()
        return False
    wired.close_control_panel()
Ejemplo n.º 7
0
 def step_check_user_in_credential_list(self, in_list, report_file,
                                        case_name):
     flag = False
     user_in = self.wait_pictures("_user_of_credentials")
     if user_in and in_list:
         step = {
             'step_name': 'Check user in credential list',
             'result': 'Pass',
             'expect': 'User should be in credential list.',
             'actual': 'User is in credential list.',
             'note': 'none'
         }
         flag = True
     elif not user_in and not in_list:
         step = {
             'step_name': 'Check user not in credential list',
             'result': 'Pass',
             'expect': 'User should not be in credential list.',
             'actual': 'User is not in credential list.',
             'note': 'none'
         }
         flag = True
     else:
         step = {
             'step_name': 'Check whether user in credential list or not',
             'result': 'Fail',
             'expect': '',
             'actual': 'Fail.',
             'note': 'none'
         }
     common_function.update_cases_result(report_file, case_name, step)
     return flag
def step5_res(*args, **kwargs):
    case_name = kwargs.get("case_name")
    report_file = kwargs.get("report_file")
    with open(path, 'r', encoding='utf-8') as f:
        file_info = f.readline()
        print(file_info)
    time.sleep(5)
    time_gap = time.time() - float(file_info)
    log.info('tc power off time is {}'.format(time_gap))
    os.remove(path)
    if time_gap > 5:
        log.info('power off success')
        steps = {
            'step_name':
            "verify screen can be unlocked and shutdown immediately",
            'result': 'Pass',
            'expect': 'success',
            'actual': 'success',
            'note': ''
        }
        common_function.update_cases_result(report_file, case_name, steps)
    else:
        steps = {
            'step_name':
            "verify screen can be unlocked and shutdown immediately",
            'result': 'Fail',
            'expect': 'success',
            'actual': 'fail',
            'note': ''
        }
        common_function.update_cases_result(report_file, case_name, steps)
        reset_settings()
        return False
def enable_wireless(*args, **kwargs):
    report_file = kwargs.get("report_file")
    case_name = kwargs.get("case_name")
    step_2_result = step_2_1()
    if not step_2_result[0]:
        step_2_report = {
            'step_name': 'step_2 enable wireless',
            'result': 'Fail',
            'expect': "enable wireless success",
            'actual': "enable wireless fail",
            'note': '{}'.format(step_2_result[1])
        }
        cf.update_cases_result(report_file, case_name, step_2_report)
        restore()
        restore_wireless()
        log.error("{:+^80}".format("test case fail"))
        return False
    step_2_report = {
        'step_name': 'step_2 enable wireless',
        'result': 'Pass',
        'expect': "enable wireless success",
        'actual': "enable wireless success",
        'note': '{}'.format(step_2_result[1])
    }
    cf.update_cases_result(report_file, case_name, step_2_report)

    os.system("reboot")
    time.sleep(60)
Ejemplo n.º 10
0
    def __update_result(self):
        step = {
            'step_name': '',
            'result': 'PASS',
            'expect': '',
            'actual': '',
            'note': ''
        }
        step.update({'step_name': self.event_method_name})
        if not self.flag:
            if self.capture:
                path = get_current_dir(
                    "Test_Report/img/{}__{}_exception.png".format(
                        self.case_name, self.event_method_name))
                log.warning(f"capture path: {path}")
                capture_screen(path)
            step.update({
                'result':
                'Fail',
                'expect':
                self.error_msg.get("expect", ""),
                'actual':
                self.error_msg.get("actual", ""),
                'note':
                '{}__{}_exception.png'.format(self.case_name,
                                              self.event_method_name)
                if self.capture else ""
            })
        else:

            step.update(self.success_msg)
        update_cases_result(self.yml_path, self.case_name, step)
        return
def access_website_before(proxy_test, case_name, report_file):
    msg = 'step - - access website before setting proxy'
    log.info(msg)
    steps = {
        'step_name': '',
        'result': '',
        'expect': '',
        'actual': '',
        'note': ''
    }
    url = proxy_test.host_name
    if not proxy_test.access_website():
        step_rs = 'Pass'
        fun_rs = True
        msg2 = 'failed to access {}'.format(url)
    else:
        step_rs = 'Fail'
        fun_rs = False
        msg2 = 'succeed to access {}'.format(url)
    msg3 = '{} can not be accessed'.format(url)
    steps['step_name'] = msg
    steps['actual'] = msg2
    steps['expect'] = msg3
    steps['result'] = step_rs
    log.info('test {}'.format(step_rs))
    common_function.update_cases_result(report_file, case_name, steps)
    # if fun_rs:
    #     proxy_test.reboot()
    # else:
    #     proxy_test.reset_env_halfway()
    return fun_rs
Ejemplo n.º 12
0
def start(case_name, **kwargs):
    SwitchThinProMode(switch_to='admin')
    # report_file = network_function.system_ip() + '.yaml'
    # ip = common_function.check_ip_yaml()
    # report_file = get_root_path("Test_Report/{}.yaml".format(ip))
    base_name = get_report_base_name()
    report_file = get_current_dir('Test_Report', base_name)
    common_function.new_cases_result(report_file, case_name)  # new report
    configure_check = ConfigureCheck()
    result = configure_check.check()
    if result == 'pass':
        step1 = {
            'step_name': 'Check smartzero configuration',
            'result': 'Pass',
            'expect': 'smartzero',
            'actual': 'smartzero',
            'note': 'none'
        }
    elif result == 'NA':
        step1 = {
            'step_name': 'Check smartzero configuration',
            'result': 'Fail',
            'expect': 'current os',
            'actual': 'current os is not smartzero',
            'note': 'none'
        }
    else:
        step1 = {
            'step_name': 'Check smartzero configuration',
            'result': 'Fail',
            'expect': 'smartzero',
            'actual': 'fail to get target os',
            'note': 'none'
        }
    common_function.update_cases_result(report_file, case_name, step1)
def clear_proxy(proxy_test, case_name, report_file):
    protocol_name = proxy_test.protocol
    msg = 'step - - clear {} proxy'.format(protocol_name)
    log.info(msg)
    steps = {
        'step_name': '',
        'result': '',
        'expect': '',
        'actual': '',
        'note': ''
    }
    if proxy_test.set_proxy(''):
        step_rs = 'Pass'
        fun_rs = True
        msg2 = 'succeed to clear proxy'
    else:
        step_rs = 'Fail'
        fun_rs = False
        msg2 = 'Failed to clear proxy'
    msg3 = 'network panel can be edit'
    steps['step_name'] = msg
    steps['actual'] = msg2
    steps['expect'] = msg3
    steps['result'] = step_rs
    log.info('test {}'.format(step_rs))
    common_function.update_cases_result(report_file, case_name, steps)
    return fun_rs
 def step_unlock_result(self,
                        report_file,
                        case_name,
                        unlock_result='win10'):
     if self.check_unlock_result(unlock_result):
         step = {
             'step_name': 'Check unlock result for vdi view',
             'result': 'Pass',
             'expect': 'Unlock vdi view successfully.',
             'actual': 'Unlock vdi view successfully.',
             'note': 'none'
         }
         common_function.update_cases_result(report_file, case_name, step)
         return True
     else:
         self.log.debug(
             'Fail to unlock vdi view',
             common_function.get_current_dir("Test_Report", 'img',
                                             'unlock_vdi_view_result.png'))
         step = {
             'step_name': 'Check unlock result for vdi view',
             'result': 'Fail',
             'expect': 'Unlock vdi view successfully.',
             'actual': 'Fail to unlock vdi view.',
             'note': 'none'
         }
         common_function.update_cases_result(report_file, case_name, step)
         return False
def enable_wireless_after_reboot(**kwargs):
    report_file = kwargs.get("report_file")
    case_name = kwargs.get("case_name")
    after_reboot_result = step_2_2()
    if not after_reboot_result[0]:
        step_2_report = {
            'step_name': 'step_2 enable wireless',
            'result': 'Fail',
            'expect': "enable wireless success",
            'actual': "enable wireless fail",
            'note': '{}'.format(after_reboot_result[1])
        }
        cf.update_cases_result(report_file, case_name, step_2_report)
        restore()
        restore_wireless()
        log.error("{:+^80}".format("test case fail"))
        return False
    step_2_report = {
        'step_name': 'step_2 enable wireless',
        'result': 'Pass',
        'expect': "enable wireless success",
        'actual': "enable wireless success",
        'note': '{}'.format(after_reboot_result[1])
    }
    cf.update_cases_result(report_file, case_name, step_2_report)
    restore()
    log.info("{:+^80}".format("test case pass"))
    return True
Ejemplo n.º 16
0
 def step_unlock_result(self,
                        report_file,
                        case_name,
                        unlock_result='win10'):
     if self.check_unlock_result(unlock_result):
         step = {
             'step_name': 'Check unlock result for vdi rdp',
             'result': 'Pass',
             'expect': 'Unlock vdi rdp successfully.',
             'actual': 'Unlock vdi rdp successfully.',
             'note': 'none'
         }
         common_function.update_cases_result(report_file, case_name, step)
         return True
     else:
         rdp_id = self.vdi.vdi_connection_id('freerdp')[0]
         share_credential = subprocess.getoutput(
             "mclient --quiet get root/ConnectionType/freerdp/connections/{}/SingleSignOn"
             .format(rdp_id))
         step = {
             'step_name':
             'Check unlock result for vdi rdp',
             'result':
             'Fail',
             'expect':
             'Unlock vdi rdp successfully.',
             'actual':
             'Fail to unlock vdi rdp.',
             'note':
             'share credentials with screensaver: {}'.format(
                 share_credential)
         }
         common_function.update_cases_result(report_file, case_name, step)
         return False
Ejemplo n.º 17
0
 def website_test(self, url, flag, case_name, report_file):
     if flag:
         expect = 200
         msg = "verify {} can be accessed".format(url)
     else:
         expect = 'Error'
         msg = "verify {} can not be accessed".format(url)
     steps = {
         'step_name': "test {}".format(url),
         'result': '',
         'expect': 'status code should be {}'.format(expect),
         'actual': '',
         'note': ''
     }
     log.info(msg)
     log.info('current ip: {}'.format(common_function.get_ip()))
     log.info('get status code from {}'.format(url))
     data = self.get_website_response()
     actual = 'status code is {}'.format(data)
     log.info(actual)
     if data == expect:
         s = 'Pass'
         rs = True
     else:
         s = 'Fail'
         rs = False
     log.info('test {}'.format(s))
     steps['result'] = s
     steps['actual'] = actual
     common_function.update_cases_result(report_file, case_name, steps)
     return rs
Ejemplo n.º 18
0
def local_start(case_name, result_file, test_data, local_pic_name):
    """
    make sure mouse position will not affect testing
    """
    pic_min_sim = 0.99
    x, y = mouse.position()
    if x >= y > 200:
        pyautogui.moveTo(200, 200)
    elif 200 > x >= y:
        pyautogui.moveTo(x + 20, y + 20)
    else:
        pyautogui.moveTo(250, 250)
    time.sleep(20)
    # check local resolution
    pic_sim, diff_res, first_collect_flag = check_layout(os.path.join(test_data, 'td_multiple_display', 'local_pic', local_pic_name))
    if "1_ms" in local_pic_name:
        log.info("Change Sim to 0.93")
        pic_min_sim = 0.93
    if pic_sim >= pic_min_sim:
        steps = {
            'step_name': 'check local layout',
            'result': 'Pass',
            'expect': 'similarity > 99%',  # can be string or pic path
            'actual': 'layout and resolution set correctly',
            'note': ''}
        common_function.update_cases_result(result_file, case_name, steps)
        return True, first_collect_flag
    else:
        if not os.path.exists(common_function.get_current_dir('Test_Report', 'img')):
            os.mkdir(common_function.get_current_dir('Test_Report', 'img'))
        try:
            common_function.check_free_memory()
            picture_operator.save_from_data('{}'.format(common_function.get_current_dir('Test_Report', 'img',
                                                                                        '{}.png'.format(case_name))),
                                            diff_res)
            save_path = common_function.get_current_dir('Test_Report', 'img', '{}.jpg'.format(case_name))

            shutil.copy(common_function.get_current_dir('temp.png'),
                        save_path)
            common_function.check_free_memory("after")
        except AssertionError as e:
            raise e
        except:
            save_fail_path = common_function.get_current_dir('Test_Report', 'img', 'save_fail_{}.txt'.format(case_name))
            f = open(save_fail_path, "w")
            f.close()
        finally:
            log.debug(gc.garbage)
            gc.collect()

        steps = {
            'step_name': 'check local layout',
            'result': 'Fail',
            'expect': 'similarity > 99%',  # can be string or pic path
            'actual': 'img/{}.png'.format(case_name),  # can be string or pic path
            'note': 'actual similarity: {}'.format(pic_sim)}
        common_function.update_cases_result(result_file, case_name, steps)
        return False, first_collect_flag
Ejemplo n.º 19
0
def start(case_name, **kwargs):
    # report_file = os.path.join(cf.get_current_dir(), "Test_Report", "{}.yaml".format(cf.check_ip_yaml()))
    # cf.new_cases_result(report_file, case_name)
    base_name = cf.get_report_base_name()
    report_file = get_current_dir('Test_Report', base_name)
    cf.new_cases_result(report_file, case_name)  # new report

    log.info("{:-^80}".format("start a case test"))
    log.info("case name:" + case_name)
    """Get the image_id and sp in the yaml file"""
    t = cf.load_global_parameters()
    image_id = t.get("image_id")
    sp = t.get("sp")
    """Get the system version number"""
    version_id = subprocess.getoutput("cat /etc/imageid")
    version = subprocess.getoutput("dpkg -l | grep hptc-sp-thinpro.*-sp")
    if not version:
        log.info("version number is a empty")
        version_number = ''
    else:
        version_number = "".join(
            subprocess.getoutput(
                "dpkg -l | grep hptc-sp-thinpro.*-sp").replace(
                    " ", "").split("-")[3][0:6].split("."))[2:]
    if image_id.upper() == version_id.upper() and sp == version_number:
        log.info(
            "version_id and version_number are the same as image_id and sp")
        report = {
            'result':
            'Pass',
            'expect':
            "version_id and version_number are the same as image_id and sp",
            'actual':
            "version_id {0} and version_number {1} are the same as image_id {2} and sp {3}"
            .format(version_id, version_number, image_id, sp),
            'note':
            ''
        }
        cf.update_cases_result(report_file, case_name, report)
        return True
    else:
        log.error(
            "version_id and version_number are different from  image_id and sp"
        )
        report = {
            'result':
            'Fail',
            'expect':
            "version_id and version_number are different from image_id and sp",
            'actual':
            "version_id {0} and version_number {1} are different from image_id {2} and sp {3}"
            .format(version_id, version_number, image_id, sp),
            'note':
            ''
        }
        cf.update_cases_result(report_file, case_name, report)
        return False
def start(case_name, **kwargs):
    common_function_tp.SwitchThinProMode(switch_to='admin')
    # report_file = network_function.system_ip() + '.yaml'
    # ip = common_function.check_ip_yaml()
    # report_file = get_root_path("Test_Report/{}.yaml".format(ip))
    base_name = get_report_base_name()
    report_file = get_current_dir('Test_Report', base_name)
    common_function.new_cases_result(report_file, case_name)  # new report
    check_storage = CheckStorage()
    primary_result = check_storage.check_image_in_primary_disk()
    if primary_result is True:
        step1 = {
            'step_name': 'Check whether image installed in primary disk',
            'result': 'Pass',
            'expect': 'in primary disk',
            'actual': 'in primary disk',
            'note': 'none'
        }
    elif primary_result == 'fail':
        step1 = {
            'step_name': 'Check whether image installed in primary disk',
            'result': 'Fail',
            'expect': 'in primary disk',
            'actual':
            'Fail to get primary card label or fail to get current primary card size',
            'note': 'none'
        }
    else:
        step1 = {
            'step_name': 'Check whether image installed in primary disk',
            'result': 'Fail',
            'expect': 'in primary disk',
            'actual': 'not in primary disk',
            'note': 'none'
        }
    common_function.update_cases_result(report_file, case_name, step1)
    if primary_result is not True:
        return False
    extended_result = check_storage.check_disk_extended()
    if extended_result is True:
        step2 = {
            'step_name': 'Check whether disk is extended',
            'result': 'Pass',
            'expect': 'extended',
            'actual': 'extended',
            'note': 'none'
        }
    else:
        step2 = {
            'step_name': 'Check whether disk is extended',
            'result': 'Fail',
            'expect': 'extended',
            'actual': 'not extended',
            'note': 'none'
        }
    common_function.update_cases_result(report_file, case_name, step2)
Ejemplo n.º 21
0
def start(case_name, **kwargs):
    SwitchThinProMode(switch_to='admin')
    # report_file = network_function.system_ip() + '.yaml'
    # ip = common_function.check_ip_yaml()
    # report_file = get_root_path("Test_Report/{}.yaml".format(ip))
    base_name = get_report_base_name()
    report_file = get_current_dir('Test_Report', base_name)
    common_function.new_cases_result(report_file, case_name)  # new report
    security_boot = SecurityBoot()
    current_platform = common_function.get_platform()
    if current_platform[0] == 't':
        platform_type = 'DTC'
    elif current_platform[0] == 'm':
        platform_type = 'MTC'
    else:
        step1 = {
            'step_name': 'Check platform type',
            'result': 'Fail',
            'expect': 'DTC or MTC',
            'actual': 'invalid platform type',
            'note': 'none'
        }
        common_function.update_cases_result(report_file, case_name, step1)
        return
    check_result = security_boot.check_security_boot(platform_type)
    if check_result is True:
        step2 = {
            'step_name': 'Check whether security boot enabled or not',
            'result': 'Pass',
            'expect': 'Enable',
            'actual': 'Disable',
            'note': 'none'
        }
    elif check_result == 'skip checking':
        step2 = {
            'step_name':
            'Check whether security boot enabled or not',
            'result':
            'Fail',
            'expect':
            'Skip checking security boot',
            'actual':
            'Skip checking security boot for platform {}'.format(
                security_boot.target_platform),
            'note':
            'none'
        }
    else:
        step2 = {
            'step_name': 'Check whether security boot enabled or not',
            'result': 'Fail',
            'expect': 'Enable',
            'actual': check_result,
            'note': 'none'
        }
    common_function.update_cases_result(report_file, case_name, step2)
Ejemplo n.º 22
0
    def website_test222(bypass_text, accessed_list, not_accessed_list,
                        case_name, report_file):
        log.info('wait 10s')
        time.sleep(10)
        rs = False
        steps = {
            'step_name': "test no proxy: ".format(bypass_text),
            'result': '',
            'expect': 'status code should be 200',
            'actual': '',
            'note': ''
        }
        for j in accessed_list:
            log.info("verify {} can be accessed".format(j))
            log.info('get data from {}'.format(j))
            try:
                data = requests.get(j, timeout=5).status_code
            except Exception:
                data = 'Error'
            log.info('status code is: {}'.format(data))

            if data == 200:
                s = 'Pass'
                rs = True
            else:
                s = 'Fail'
                rs = False
            log.info('test {}'.format(s))
            steps['result'] = s
            common_function.update_cases_result(report_file, case_name, steps)
        for i in not_accessed_list:
            log.info("verify {} can not be accessed".format(i))
            log.info('get data from {}'.format(i))
            try:
                data = requests.get(i, timeout=5).status_code
            except Exception:
                data = 'Error'
            log.info('status code is: {}'.format(data))
            steps = {
                'step_name': "verify {} can not be accessed".format(i),
                'result': '',
                'expect': 'status code should be Error',
                'actual': data,
                'note': ''
            }
            if data == 'Error':
                s = 'Pass'
                rs = True
            else:
                s = 'Fail'
                rs = False
            log.info('test {}'.format(s))
            steps['result'] = s
            common_function.update_cases_result(report_file, case_name, steps)
        return rs
def step1(*args, **kwargs):
    case_name = kwargs.get("case_name")
    report_file = kwargs.get("report_file")
    SwitchThinProMode(switch_to='admin')
    log.info('set user password: 1')
    set_user_password()
    log.info('enable require password for general users')
    power_m = PowerManagerFactory("ScreenSaver")
    power_m.ScreenSaver.open_power_manager_from_control_panel()
    power_m.ScreenSaver.switch()
    power_m.ScreenSaver.set(
        pms=pms.ScreenSaver.Enable_Screensaver_and_Screen_Lock, radio="on")
    power_m.ScreenSaver.set(
        pms=pms.ScreenSaver.Require_password_for_general_users, radio="on")
    click_icon('ok', count=1)
    power_m.ScreenSaver.apply()
    time.sleep(5)
    power_m.ScreenSaver.close_all_power_manager()
    SwitchThinProMode(switch_to='user')
    log.info('start a web connection')
    web = WebConn([])
    web.open_firefox()
    if click_icon('firefox_title'):
        log.info('web connection success')
    lock_screen()
    pyautogui.press('enter')
    if click_icon('locked_dialog'):
        log.info('screen lock dialog shown')
        steps = {
            'step_name': "verify screen lock dialog shown",
            'result': 'Pass',
            'expect': 'show',
            'actual': 'show',
            'note': ''
        }
        common_function.update_cases_result(report_file, case_name, steps)
    else:
        error_pic = os.path.join(
            common_function.get_current_dir(), r'Test_Report', 'img',
            '{}+step1.png'.format(case_name.replace(' ', '_')))
        capture_screen(error_pic)
        steps = {
            'step_name': "verify screen lock dialog shown",
            'result': 'Fail',
            'expect': 'show',
            'actual': 'not show',
            'note': ''
        }
        common_function.update_cases_result(report_file, case_name, steps)
        reset_settings()
        return False
def add_wl(wireless, ssid, case_name, result_file):
    log.info('start add wireless profile {}'.format(ssid))
    wireless.add(ssid=ssid)
    wireless.apply_and_ok()
    icon = wait_element(wl_pic("_move_mouse"), offset=(0, 10))
    tool.click(icon[0][0], icon[0][1], num=2)
    if wait_element(wl_pic("_{}".format(ssid))):
        log.info("wireless profile {} add success".format(ssid))
        steps = {
            'step_name': 'check all the configurations could be saved -- add',
            'result': 'Pass',
            'expect': '',
            'actual': '',
            'note': ''
        }
        update_cases_result(result_file, case_name, steps)
    else:
        error_pic = os.path.join(get_current_dir(), r'Test_Report', 'img',
                                 '{}+add1.png'.format(case_name))
        capture_screen(error_pic)
        steps = {
            'step_name': 'check all the configurations could be saved -- add',
            'result': 'Fail',
            'expect': 'saved',
            'actual': 'no exists',
            'note': '{}'.format(error_pic)
        }
        update_cases_result(result_file, case_name, steps)
        wireless.wl_set_apply()
        return False
    wireless.wl_set_apply()
    time.sleep(25)
    if check_wl("add_res"):
        log.info('new wireless profile connection success')
        steps = {
            'step_name':
            'check could successful connect to specified AP -- add',
            'result': 'Pass',
            'expect': '',
            'actual': '',
            'note': ''
        }
        update_cases_result(result_file, case_name, steps)
    else:
        error_pic = os.path.join(get_current_dir(), r'Test_Report', 'img',
                                 '{}+add2.png'.format(case_name))
        capture_screen(error_pic)
        steps = {
            'step_name':
            'check could successful connect to specified AP -- add',
            'result': 'Fail',
            'expect': 'connect',
            'actual': 'disconnect',
            'note': '{}'.format(error_pic)
        }
        update_cases_result(result_file, case_name, steps)
        close_wl_statistics()
        reset_setting(wireless, ssid)
        return False
    close_wl_statistics()
def delete_wl(wireless, ssid, case_name, result_file):
    log.info('start delete wireless profile {}'.format(ssid))
    wireless.delete(ssid=ssid)
    icon = wait_element(wl_pic("_move_mouse"), offset=(0, 10))
    tool.click(icon[0][0], icon[0][1], num=2)
    if not wait_element(wl_pic("_{}".format(ssid))):
        log.info("wireless profile {} delete success".format(ssid))
        steps = {
            'step_name': 'check selected profile could be deleted',
            'result': 'Pass',
            'expect': '',
            'actual': '',
            'note': ''
        }
        update_cases_result(result_file, case_name, steps)
    else:
        error_pic = os.path.join(get_current_dir(), r'Test_Report', 'img',
                                 '{}+delete1.png'.format(case_name))
        capture_screen(error_pic)
        steps = {
            'step_name': 'check selected profile could be deleted',
            'result': 'Fail',
            'expect': 'deleted',
            'actual': 'exists',
            'note': '{}'.format(error_pic)
        }
        update_cases_result(result_file, case_name, steps)
        wireless.wl_set_apply()
        reset_setting(wireless, ssid)
        return False
    wireless.wl_set_apply()
    time.sleep(25)
    if not check_wl("edit_res"):
        log.info('deleted wireless connection disconnection success')
        steps = {
            'step_name':
            'check thinpro will disconnect from the wireless network',
            'result': 'Pass',
            'expect': '',
            'actual': '',
            'note': ''
        }
        update_cases_result(result_file, case_name, steps)
    else:
        error_pic = os.path.join(get_current_dir(), r'Test_Report', 'img',
                                 '{}+delete2.png'.format(case_name))
        capture_screen(error_pic)
        steps = {
            'step_name':
            'check thinpro will disconnect from the wireless network',
            'result': 'Fail',
            'expect': 'disconnect',
            'actual': 'connect',
            'note': '{}'.format(error_pic)
        }
        update_cases_result(result_file, case_name, steps)
        close_wl_statistics()
        reset_setting(wireless, ssid)
        return False
    close_wl_statistics()
def start(case_name, **kwargs):
    report_file = os.path.join(common_function.get_current_dir(), "Test_Report", "{}.yaml".format(common_function.check_ip_yaml()))
    common_function.new_cases_result(report_file, case_name)  # new report
    pyautogui.moveTo(1, 1)  # Move cursor in case it's at the corner of screen and PyAutuGui fail-safe is triggered
    time.sleep(1)
    saver = ScreenSave()
    saver.switch_user('admin')
    if not saver.open_screensaver_menu():
        return False
    scr_saver_check = ScreenSaverCheck()
    ss = scr_saver_check.enable_SS_checked
    if not ss:
        enable_saver = saver.wait_pictures('2')
        pyautogui.click(enable_saver[0], enable_saver[1])
        pyautogui.press('tab', presses=2, interval=0.5)
    else:
        pyautogui.press('tab', presses=6, interval=0.5)
    pyautogui.typewrite('1')
    time.sleep(1)
    enable_saver = saver.wait_pictures('2')
    if enable_saver:
        pyautogui.click(enable_saver[0], enable_saver[1])
    else:
        return False
    saver.apply_and_save()
    saver.close_window()
    time.sleep(65)
    pyautogui.click()
    time.sleep(1)
    unlock_dialog_folder = saver.path + '/Test_Data/td_power_manager/ScreenSaver/_lock_screen'
    unlock_dialog = wait_element(unlock_dialog_folder)
    if unlock_dialog:
        step = {'step_name': 'Check whether screensaver is activated or not',
                 'result': 'Fail',
                 'expect': 'Screensaver should not be activated after 1 min.',
                 'actual': 'Screensaver is activated after 1 min.',
                 'note': 'none'}
        pyautogui.typewrite('1')
        time.sleep(1)
        pyautogui.hotkey('enter')
        time.sleep(1)
    else:
        step = {'step_name': 'Check whether screensaver is activated or not',
                 'result': 'Pass',
                 'expect': 'Screensaver should not be activated after 1 min.',
                 'actual': 'Screensaver is not activated after 1 min.',
                 'note': 'none'}
    common_function.update_cases_result(report_file, case_name, step)
    saver.restore_default_settings()
Ejemplo n.º 27
0
 def set_no_proxy(self, fill_all_protocol, bypass_text, case_name,
                  report_file):
     log.info('set bypass: {}'.format(bypass_text))
     steps = {
         'step_name': 'set {} {}'.format(self.protocol, bypass_text),
         'result': 'Fail',
         'expect': 'icon can be recognised',
         'actual': '',
         'note': ''
     }
     proxy_list = ['http', 'ftp', 'https']
     t = self.dns.open_dns()
     if not t:
         log.info('Failed to recognise DNS icon')
         steps['actual'] = 'Failed to recognise DNS icon'
         common_function.update_cases_result(report_file, case_name, steps)
         self.dns.close_dns()
         return
     if fill_all_protocol:
         for i in proxy_list:
             proxy_text = self.get_proxy_server('proxy3').replace(
                 self.protocol, 'http')
             t2 = self.dns.set_value(i, proxy_text)
             if not t2:
                 log.info('Failed to recognise {} icon'.format(i))
                 steps['actual'] = 'Failed to recognise {} icon'.format(i)
                 common_function.update_cases_result(
                     report_file, case_name, steps)
                 self.dns.close_dns()
                 return
     t3 = self.dns.set_value(self.protocol, bypass_text)
     time.sleep(5)
     if not t3:
         log.info('Failed to recognise noproxy icon')
         steps['actual'] = 'Failed to recognise noproxy icon'
         common_function.update_cases_result(report_file, case_name, steps)
         self.dns.close_dns()
         return
     t4 = self.dns.close_dns()
     if not t4:
         log.info('Failed to recognise apply icon')
         steps['actual'] = 'Failed to recognise apply icon'
         common_function.update_cases_result(report_file, case_name, steps)
         return
     log.info('proxy set successfully')
     steps['actual'] = 'proxy set successfully'
     steps['result'] = 'Pass'
     common_function.update_cases_result(report_file, case_name, steps)
     return True
def update_case_result(result, step_name, **kwargs):
    case_name = kwargs.get("case_name")
    report_file = kwargs.get("report_file")
    if result:
        step = {'step_name': step_name,
                'result': 'Pass',
                'expect': '{} successfully.'.format(step_name),
                'actual': '{} successfully.'.format(step_name),
                'note': 'none'}
    else:
        step = {'step_name': step_name,
                'result': 'Fail',
                'expect': '{} successfully.'.format(step_name),
                'actual': '{} failed.'.format(step_name),
                'note': 'none'}
    common_function.update_cases_result(report_file, case_name, step)
def step4(*args, **kwargs):
    case_name = kwargs.get("case_name")
    report_file = kwargs.get("report_file")
    SwitchThinProMode(switch_to='user')
    tl = TelnetLinux()
    tl.logon()
    lock_screen()
    time.sleep(2)
    pyautogui.press('enter')
    time.sleep(1)
    a = click_icon('locked_dialog')
    if not a:
        log.debug(
            "first check not found locked dialog",
            common_function.get_current_dir(
                'Test_Report', 'img',
                '{}_locked_dialog.png'.format(case_name.replace(' ', '_'))))
        pyautogui.press('enter')
        time.sleep(1)
        a = click_icon('locked_dialog')
    pyautogui.press('esc')
    time.sleep(1)
    b = click_icon('locked_dialog')
    unlock_screen('root', '1')
    tl.logoff()
    log.info('press esc before {}, press esc after {}'.format(a, b))
    if a and not b:
        steps = {
            'step_name': "verify press esc key will dismiss the dialog",
            'result': 'Pass',
            'expect': 'success',
            'actual': 'success',
            'note': ''
        }
        common_function.update_cases_result(report_file, case_name, steps)
    else:
        steps = {
            'step_name': "verify press esc key will dismiss the dialog",
            'result': 'Fail',
            'expect': 'success',
            'actual': 'fail',
            'note': ''
        }
        common_function.update_cases_result(report_file, case_name, steps)
        reset_settings()
        return False
def userlock_is_1(**kwargs):
    report_file = kwargs.get("report_file")
    case_name = kwargs.get("case_name")
    hostname = get_default_hostname()
    log.info("{:-^80}".format("start a case test"))
    log.info("case name:" + case_name)

    cf.SwitchThinProMode("admin")
    modify_hostname_registry("asdfgh")
    wired = network_setting.Wired()
    wired_connection_mode = subprocess.getoutput(
        "mclient --quiet get root/Network/Wired/Method")
    if wired_connection_mode is not "Automatic":
        subprocess.call(
            "mclient --quiet set root/Network/Wired/Method 'Automatic'",
            shell=True)
        subprocess.call("mclient commit", shell=True)
        for i in range(20):
            log.info("wait connect network...")
            time.sleep(2)
            if wired.check_wired_is_connected():
                log.info("wired is connected")
                break
    set_userlock("1")
    export_profile()

    if not set_static_network():
        log.error("set static network error")
        report = {
            'step_name': 'set static network',
            'result': 'fail',
            'expect': "set static network success",
            'actual': "set static network fail",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        teardown_test_environment()
        modify_hostname_registry(hostname)
        cf.import_profile()
        os.remove(cf.get_current_dir("Test_Data/profile_file.xml"))
        log.error("{:+^80}".format("test case fail"))
        return False
    import_profile()
    log.info("reboot")
    time.sleep(30)