コード例 #1
0
def restart_network():
    log.info("restart network from network systray icon")
    nw = wait_element(
        cf.get_current_dir(
            "Test_Data/td_network/wired/_wired_connect_systray"))
    if not nw:
        log.error("not found network systray icon")
        return False
    pyautogui.click(nw[0])
    stop = wait_element(
        cf.get_current_dir("Test_Data/td_network/wired/_systray_restart"))
    if not stop:
        log.error("not found network systray stop icon")
        return False
    pyautogui.click(stop[0])
    wireless = network_setting.Wireless()
    for i in range(20):
        log.info("wait network disconnect...")
        time.sleep(2)
        if not wireless.check_wireless_connected():
            log.info("network disconnected")
            break
    else:
        log.error("network disconnect fail")
        return False
    for i in range(40):
        log.info("wait network connect...")
        time.sleep(3)
        if wireless.check_wireless_connected():
            log.info("network connected success")
            log.info("restart network from network systray icon success")
            return True
    log.error("network connected fail")
    log.error("restart network from network systray icon fail")
    return False
def restore_wireless():
    wireless = network_setting.Wireless()
    wireless.open_network()
    wireless.switch_to_wireless_tab()
    wireless.enable_wireless()
    wireless.apply()
    wireless.close_control_panel()
def step_2_2():
    log.info("start check wireless after reboot")
    cf.SwitchThinProMode("admin")
    wireless = network_setting.Wireless()
    for i in range(24):
        log.info("wait connect wireless...")
        time.sleep(5)
        if wireless.check_wireless_connected():
            log.info("wireless is connected")
            break
    else:
        log.error("connect wireless time out")
        return [False, "connect wireless time out"]

    if not wait_element(pic("_systray_connect")):
        log.error("not found the wireless systray icon")
        pyautogui.screenshot(
            cf.get_current_dir(
                "Test_Report/ssid_disable_and_enable_wireless_error.png"))
        return [False, "not found the wireless systray icon"]
    log.info("found the wireless systray icon")

    wireless.open_network()
    wireless.switch_to_wireless_tab()
    if not wait_element(pic("_black_add_gray_edit_del"), rate=0.99):
        log.error("not found the black add and edit delete")
        return [False, "not found the black add and edit delete"]
    log.info("found the black add and edit delete")
    wireless.close_control_panel()
    restore()
    # log.info("{:+^80}".format("test case pass"))
    return [True, "success"]
def restore():
    log.info("start restore test environment")
    wireless = network_setting.Wireless()
    wired = network_setting.Wired()
    wireless.close_control_panel()
    wireless.del_wireless_profile_from_reg()
    wireless.set_wired_connection_priority()
    if not wired.check_wired_is_connected():
        wired.enable_eth0()
 def __init__(self):
     self.log = common_function.log
     self.path = common_function.get_current_dir()
     self.report_path = self.path + '/Test_Report'
     self.img_path = self.report_path + '/img/'
     try:
         if not os.path.exists(self.report_path):
             os.mkdir(self.report_path)
         if not os.path.exists(self.img_path):
             os.mkdir(self.img_path)
     except Exception as e:
         self.log.error(e)
     self.wireless = network_setting.Wireless()
コード例 #6
0
def connect_wireless(ssid):
    try:
        log.info("start connect wireless {}".format(ssid))
        wireless = network_setting.Wireless()
        wireless.open_network()
        wireless.switch_to_wireless_tab()
        wireless.add(ssid=ssid)
        wireless.apply_and_ok()
        wireless.apply()
        wireless.close_control_panel()
        return True
    except:
        log.error(traceback.format_exc())
        return False
 def __init__(self):
     self.log = common_function.log
     self.path = common_function.get_current_dir()
     self.report_path = self.path + '/Test_Report'
     self.img_path = self.report_path + '/img/'
     try:
         if not os.path.exists(self.report_path):
             os.mkdir(self.report_path)
         if not os.path.exists(self.img_path):
             os.mkdir(self.img_path)
     except Exception as e:
         self.log.error(e)
     self.wireless = network_setting.Wireless()
     self.wireless_aps_between_149_161 = ['R1-Iverson-5G', 'R1-Function-5G', 'R1-TC_5G_ax_WPA2P', 'IN-PSSWIMM-5G',
                                          'R1-TC_5G_ac_WPA2P', 'R1-Linux-roaming', 'HPDM-5G', 'R1-Linux-AC',
                                          'R1-TC_5G_n', 'R1_5G_CH161_BW20M']
コード例 #8
0
def stop_network():
    for i in range(2):
        log.info("stop network from network systray icon")
        nw = wait_element(
            cf.get_current_dir(
                "Test_Data/td_network/wired/_wired_connect_systray"))
        if not nw:
            log.error("not found network systray icon")
            continue
        pyautogui.click(nw[0])
        break
    stop = wait_element(
        cf.get_current_dir("Test_Data/td_network/wired/_systray_stop"))
    if not stop:
        log.error("not found network systray stop icon")
        return False
    pyautogui.click(stop[0])
    time.sleep(5)
    wireless = network_setting.Wireless()
    if wireless.check_wireless_connected():
        log.error("stop network fail")
        return False
    log.info("stop network success")
    return True
コード例 #9
0
def start(case_name, **kwargs):
    ssid = kwargs.get("ssid", "R1-TC_2.4G_n_WPA2P")
    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)

    log.info("{:-^80}".format("start a case test"))
    log.info("case name:" + case_name)

    wireless = network_setting.Wireless()
    if not wireless.check_wireless_card():
        log.error("not found the wireless card on thin client")
        report = {
            'step_name': 'check wireless card',
            'result': 'fail',
            'expect': "thin client has wireless card",
            'actual': "not found wireless card on thin client",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        log.error("{:+^80}".format("test case fail"))
        return False

    cf.SwitchThinProMode("admin")
    wireless.close_control_panel()
    wired = network_setting.Wired()
    if wired.check_wired_is_connected():
        wired.set_wired_and_wireless_simultaneously()
        wired.disable_eth0()

    wireless.del_wireless_profile_from_reg()

    if not connect_wireless(ssid=ssid):  # connect wireless
        log.error("add wireless {} profile fail".format(ssid))
        wireless.close_control_panel()
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        if not wired.check_wired_is_connected():
            wired.enable_eth0()
            log.info("wait connect wired")
            time.sleep(10)
        report = {
            'step_name': 'add wireless ' + ssid + ' profile fail',
            'result': 'fail',
            'expect': "connect wireless success",
            'actual': "connect wireless fail, time out",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        return False

    for i in range(24):
        log.info("wait connect wireless...")
        time.sleep(5)
        if wireless.check_wireless_connected():
            log.info("wireless connect success")
            break
    else:
        log.error("connect wireless time out")
        report = {
            'step_name': 'connect wireless',
            'result': 'fail',
            'expect': "connect wireless success",
            'actual': "connect wireless fail, time out",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        log.error("{:+^80}".format("test case fail"))
        return False
    report = {
        'step_name': 'connect wireless',
        'result': 'Pass',
        'expect': "connect wireless success",
        'actual': "connect wireless success",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)

    if not network.ping_server(ip="15.83.240.98"):  # ping 15.83.240.98
        report = {
            'step_name': 'ping "15.83.240.98"',
            'result': 'fail',
            'expect': "ping server success",
            'actual': "ping server fail",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        log.error("{:+^80}".format("test case fail"))
        return False
    report = {
        'step_name': 'ping "15.83.240.98"',
        'result': 'pass',
        'expect': "ping server success",
        'actual': "ping server success",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)

    log.info("set 'root/Network/disableLeftClickMenu' is 0")
    for i in range(2):
        os.system("mclient --quiet set root/Network/disableLeftClickMenu 0")
        time.sleep(2)
        os.system("mclient commit")
        time.sleep(5)
        disableLeftvalue = os.system(
            "mclient --quiet get root/Network/disableLeftClickMenu")
        if disableLeftvalue == 0:
            log.info("disableLeftvalue edit successful")
            break
        else:
            log.info("disableLeftvalue edit fail")
            continue
    time.sleep(1)

    if not stop_network():  # stop network
        report = {
            'step_name': 'stop network',
            'result': 'fail',
            'expect': "stop network from network systray icon success",
            'actual': "stop network from network systray icon fail",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        os.system("mclient --quiet set root/Network/disableLeftClickMenu 1")
        os.system("mclient commit")
        log.error("{:+^80}".format("test case fail"))
        return False
    report = {
        'step_name': 'stop network',
        'result': 'pass',
        'expect': "stop network from network systray icon success",
        'actual': "stop network from network systray icon success",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)

    if not start_network():  # start network
        report = {
            'step_name': 'start network',
            'result': 'fail',
            'expect': "start network from network systray icon success",
            'actual': "start network from network systray icon fail",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        os.system("mclient --quiet set root/Network/disableLeftClickMenu 1")
        os.system("mclient commit")
        log.error("{:+^80}".format("test case fail"))
        return False
    report = {
        'step_name': 'start network',
        'result': 'pass',
        'expect': "start network from network systray icon success",
        'actual': "start network from network systray icon success",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)

    if not restart_network():  # start network
        report = {
            'step_name': 'restart network',
            'result': 'fail',
            'expect': "restart network from network systray icon success",
            'actual': "restart network from network systray icon fail",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        os.system("mclient --quiet set root/Network/disableLeftClickMenu 1")
        os.system("mclient commit")
        log.error("{:+^80}".format("test case fail"))
        return False
    report = {
        'step_name': 'restart network',
        'result': 'pass',
        'expect': "restart network from network systray icon success",
        'actual': "restart network from network systray icon success",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)

    log.info("start delete the wireless profile")
    wireless.del_wireless_profile_from_reg()
    log.info("wait wireless disconnect")
    time.sleep(10)
    if wireless.check_wireless_connected():
        log.error("wireless connected")
        report = {
            'step_name': 'check wireless status',
            'result': 'fail',
            'expect': "wireless is disconnect after delete wireless profile",
            'actual': "wireless is connect after delete wireless profile",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wired.set_wired_connection_priority()
        os.system("mclient --quiet set root/Network/disableLeftClickMenu 1")
        os.system("mclient commit")
        log.error("{:+^80}".format("test case fail"))
        return False
    report = {
        'step_name': 'check wireless status',
        'result': 'pass',
        'expect': "wireless is disconnect after delete wireless profile",
        'actual': "wireless is disconnect after delete wireless profile",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)
    wired.set_wired_connection_priority()
    os.system("mclient --quiet set root/Network/disableLeftClickMenu 1")
    os.system("mclient commit")
    if not wired.check_wired_is_connected():
        log.info("wired is not connected")
        wired.enable_eth0()
        time.sleep(20)
    log.info("{:+^80}".format("test case pass"))
    return True
コード例 #10
0
def step_1_2(**kwargs):
    case_name = kwargs.get("case_name")
    report_file = kwargs.get("report_file")
    ssid = kwargs.get("ssid")
    log.info("{:-^80}".format("start a case test"))
    log.info("case name:" + case_name)

    cf.SwitchThinProMode("admin")
    wireless = network_setting.Wireless()
    wireless.close_control_panel()
    if not wireless.check_wireless_card():
        try:
            wireless.restore_wireless()
        except Exception as e:
            log.error(traceback.print_exc())
            traceback.print_exc()
            raise e
        finally:
            wireless.close_control_panel()
        time.sleep(3)
        if not wireless.check_wireless_card():
            log.error("not found the wireless card on thin client")
            report = {
                'step_name': 'check wireless card',
                'result': 'fail',
                'expect': "thin client has wireless card",
                'actual': "not found wireless card on thin client",
                'note': ''
            }
            cf.update_cases_result(report_file, case_name, report)
            log.error("{:+^80}".format("test case fail"))
            wireless.restore_wireless()
            return False
    ssid_list = [
        "R1-Linux-5N_thinpro_store", "R1-Linux-5N_ssl_store", "R1-Linux-AC"
    ]
    if ssid in ssid_list:  # import ROOTCA.cer
        if not cf.import_cert():
            log.error("import cert fail")
            report = {
                'step_name': 'import cert',
                'result': 'fail',
                'expect': "import cert success",
                'actual': "import cert fail",
                'note': ''
            }
            cf.update_cases_result(report_file, case_name, report)
            log.error("{:+^80}".format("test case fail"))
            wireless.restore_wireless()
            return False
    if ssid == "R1-Linux-2.4N":
        folder = subprocess.getoutput("ls /media")
        rootca_path = os.path.join("/media", folder, "Certs", "ROOTCA.cer")
        cert_8021x = os.path.join("/media", folder, "Certs", "802.1X.pfx")
        if not os.path.exists(rootca_path) or not os.path.exists(cert_8021x):
            log.error(
                "not found the cert 'ROOTCA.cer' or '802.1X.pfx' in /media/{}/Certs"
                .format(format(folder)))
            report = {
                'step_name': "check cert 'ROOTCA.cer' and '802.1X.pfx'",
                'result': 'fail',
                'expect': "found 'ROOTCA.cer' and '802.1X.pfx' in USB store",
                'actual':
                "not found the cert 'ROOTCA.cer' or '802.1X.pfx' in /media/.../Certs",
                'note': ''
            }
            cf.update_cases_result(report_file, case_name, report)
            log.error("{:+^80}".format("test case fail"))
            wireless.restore_wireless()
            return False

    wired = network_setting.Wired()
    if wired.check_wired_is_connected():
        wired.set_wired_and_wireless_simultaneously()
        wired.disable_eth0()

    wireless.del_wireless_profile_from_reg()
    con_res = connect_wireless(wireless=wireless, ssid=ssid)
    if con_res is False or con_res:  # connect wireless
        log.error("add wireless {} profile fail".format(ssid))
        wireless.close_control_panel()
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        if not wired.check_wired_is_connected():
            wired.enable_eth0()
            log.info("wait connect wired")
            time.sleep(10)
        report = {
            'step_name': 'add wireless ' + ssid + ' profile fail',
            'result': 'fail',
            'expect': "connect wireless success",
            'actual': "connect wireless fail, time out",
            'note': f'{con_res}'
        }
        cf.update_cases_result(report_file, case_name, report)
        wireless.restore_wireless()
        return False

    for i in range(24):
        log.info("wait connect wireless {}...".format(ssid))
        time.sleep(5)
        if wireless.check_wireless_connected():
            log.info("wireless connect success")
            break
    else:
        log.error("connect wireless time out")
        report = {
            'step_name': 'connect wireless',
            'result': 'fail',
            'expect': "connect wireless success",
            'actual': "connect wireless fail, time out",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        wired.enable_eth0()
        log.error("{:+^80}".format("test case fail"))
        wireless.restore_wireless()
        return False
    report = {
        'step_name': 'connect wireless',
        'result': 'Pass',
        'expect': "connect wireless success",
        'actual': "connect wireless success",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)
    log.info('Wait 30 seconds to stabilize the network')
    time.sleep(30)
    if not network.ping_server(ip="15.83.240.98"):  # ping 15.83.240.98
        report = {
            'step_name': 'ping "15.83.240.98"',
            'result': 'fail',
            'expect': "ping server success",
            'actual': "ping server fail",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        wired.enable_eth0()
        log.error("{:+^80}".format("test case fail"))
        wireless.restore_wireless()
        return False
    report = {
        'step_name': 'ping "15.83.240.98"',
        'result': 'pass',
        'expect': "ping server success",
        'actual': "ping server success",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)
    log.info("start reboot")
    os.system("reboot")
    time.sleep(60)
コード例 #11
0
def step_3_4(**kwargs):
    case_name = kwargs.get("case_name")
    report_file = kwargs.get("report_file")
    ssid = kwargs.get("ssid")
    log.info("check wireless status after reboot")
    cf.SwitchThinProMode("admin")
    wireless = network_setting.Wireless()
    wired = network_setting.Wired()
    for i in range(24):
        if wireless.check_wireless_connected():
            log.info("wireless auto connect success after reboot")
            break
        log.info("wait connect wireless {}...".format(ssid))
        time.sleep(5)
    else:
        log.error("connect wireless time out")
        report = {
            'step_name': 'check wireless status',
            'result': 'fail',
            'expect': "wireless auto connect success after reboot",
            'actual': "wireless auto connect fail after reboot",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        wired.enable_eth0()
        log.error("{:+^80}".format("test case fail"))
        wireless.restore_wireless()
        return False
    report = {
        'step_name': 'check wireless status',
        'result': 'pass',
        'expect': "wireless auto connect success after reboot",
        'actual': "wireless auto connect success after reboot",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)

    log.info("start delete the wireless profile")
    wireless.del_wireless_profile_from_reg()
    log.info("wait wireless disconnect")
    time.sleep(10)
    if wireless.check_wireless_connected():
        log.error("wireless connected")
        report = {
            'step_name': 'check wireless status',
            'result': 'fail',
            'expect': "wireless is disconnect after delete wireless profile",
            'actual': "wireless is connect after delete wireless profile",
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, report)
        wired.set_wired_connection_priority()
        wired.enable_eth0()
        log.error("{:+^80}".format("test case fail"))
        wireless.restore_wireless()
        return False
    report = {
        'step_name': 'check wireless status',
        'result': 'pass',
        'expect': "wireless is disconnect after delete wireless profile",
        'actual': "wireless is disconnect after delete wireless profile",
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, report)
    wired.set_wired_connection_priority()
    if not wired.check_wired_is_connected():
        log.info("wired is not connected")
        wired.enable_eth0()
        time.sleep(20)
    log.info("{:+^80}".format("test case pass"))
    return True
コード例 #12
0
def start(case_name, **kwargs):
    log.info("{:-^80}".format("start a case test"))
    log.info("case name:" + case_name)
    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)
    before = subprocess.getoutput(
        "mclient --quiet get root/Network/userLockEngaged")
    log.info("current userLockEngaged value {}".format(before))

    wired = network_setting.Wired()
    wireless = network_setting.Wireless()

    if not wireless.check_wireless_card():  # check wireless card
        log.error("not found the wireless card on thinpro")
        pre_check_report = {
            'step_name': 'pre_check',
            'result': 'Fail',
            'expect': 'ThinPro has wireless card',
            'actual': 'not found the wireless card on thin client',
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, pre_check_report)
        log.error("{:+^80}".format("test case fail"))
        return False
    wireless.del_wireless_profile_from_reg()
    if wired.check_wired_is_connected():  # check wired connected
        log.info("wired is connected")
        wired.set_wired_and_wireless_simultaneously()
        wired.disable_eth0()
        time.sleep(3)

    value = subprocess.getoutput(
        "mclient --quiet get root/Network/EncryptWpaConfig"
    )  # step 1-------------
    if int(value) != 1:
        log.error("the default value of 'network/EncryptWpaConfig' not is '1'")
        step_1_report = {
            'step_name': 'check value of "root/Network/EncryptWpaConfig"',
            'result': 'Fail',
            'expect': 'the value of "root/Network/EncryptWpaConfig" is 1',
            'actual': 'the value of "root/Network/EncryptWpaConfig" not is 1',
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, step_1_report)
        wired.set_wired_connection_priority()
        log.error("{:+^80}".format("test case fail"))
        return False
    log.info("the default value of 'network/EncryptWpaConfig' is '1'")
    step_1_report = {
        'step_name': 'check value of "root/Network/EncryptWpaConfig"',
        'result': 'Pass',
        'expect': 'the value of "root/Network/EncryptWpaConfig" is 1',
        'actual': 'the value of "root/Network/EncryptWpaConfig" is 1',
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, step_1_report)

    log.info("start connect a wireless ap")  # step 2-------------
    cf.SwitchThinProMode("admin")
    wireless.open_network()
    wireless.switch_to_wireless_tab()
    wireless.add(ssid="R1-Linux-disconnect")
    # wireless.add(ssid="R1-TC_5G_n")
    wireless.apply_and_ok()
    wireless.apply()
    wireless.close_control_panel()

    for i in range(12):
        log.info("wait connect wireless...")
        time.sleep(5)
        if wireless.check_wireless_connected():
            log.info("wireless connected success")
            break
    else:
        log.error("connect wireless time out")
        step_2_report = {
            'step_name': 'connect wireless',
            'result': 'Fail',
            'expect': 'connect wireless success',
            'actual': 'connect wireless fail',
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, step_2_report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        if not wired.check_wired_is_connected():
            wired.enable_eth0()
        log.error("{:+^80}".format("test case fail"))
        return False
    step_2_report = {
        'step_name': 'connect wireless',
        'result': 'Pass',
        'expect': 'connect wireless success',
        'actual': 'connect wireless success',
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, step_2_report)

    password = subprocess.getoutput(
        "cat /etc/wpasupplicant.wireless.wlan0.conf")  # step 3 -------------
    if "neoware1234".lower() in password.lower():
        log.error("wireless password not is encryption")
        step_3_report = {
            'step_name': 'check wireless password profile is encryption',
            'result': 'Fail',
            'expect': 'check wireless password profile is encryption',
            'actual': 'check wireless password profile not is encryption',
            'note': ''
        }
        cf.update_cases_result(report_file, case_name, step_3_report)
        wireless.del_wireless_profile_from_reg()
        wired.set_wired_connection_priority()
        if not wired.check_wired_is_connected():
            wired.enable_eth0()
        log.error("{:+^80}".format("test case fail"))
        return False
    log.info("wireless password is encryption")
    step_3_report = {
        'step_name': 'check wireless password profile is encryption',
        'result': 'Pass',
        'expect': 'check wireless password profile is encryption',
        'actual': 'check wireless password profile is encryption',
        'note': ''
    }
    cf.update_cases_result(report_file, case_name, step_3_report)
    log.info("start reset test environment")
    wireless.del_wireless_profile_from_reg()
    wired.set_wired_connection_priority()
    if not wired.check_wired_is_connected():
        wired.enable_eth0()
    for i in range(20):
        time.sleep(3)
        if wired.check_wired_is_connected():
            break
    after = subprocess.getoutput(
        "mclient --quiet get root/Network/userLockEngaged")
    log.info("after userLockEngaged value {}".format(after))
    if after == before:
        log.info(
            "after and before value are same as,not restore userLockEngaged value"
        )
    else:
        log.info(
            "userLockEngaged Different values ​​before and after operation")
        order = ("mclient --quiet set root/Network/userLockEngaged {}".format(
            before))
        commit = "mclient commit"
        cmd = order + '&&' + commit
        subprocess.getoutput(cmd)
        time.sleep(3)
        log.info("edit userLockEngaged value successful")
    log.info("{:+^80}".format("test case pass"))
    return True
def step_1(**kwargs):
    case_name = kwargs.get("case_name")
    log.info("{:-^80}".format("start a case test"))
    log.info("case name: " + case_name)
    log.info("start prepare the pre_condition")
    wireless = network_setting.Wireless()  # check wireless card
    if not wireless.check_wireless_card():
        try:
            restore_wireless()
        except Exception as e:
            log.error(traceback.print_exc())
            traceback.print_exc()
        finally:
            wireless.close_control_panel()
        time.sleep(3)
        if not wireless.check_wireless_card():
            log.error("not found wireless card on thin client")
            return [
                False,
                "found wireless card  but not found wlan0 on thin client"
            ]

    wired = network_setting.Wired()
    if wired.check_wired_is_connected():
        log.info("wired is connected")
        wired.set_wired_and_wireless_simultaneously()
        wired.disable_eth0()
        time.sleep(2)

    wireless.del_wireless_profile_from_reg()
    log.info("start connect wireless 'R1-TC_5G_n'")
    cf.SwitchThinProMode("admin")
    wireless.open_network()
    wireless.switch_to_wireless_tab()
    wireless.add(ssid="R1-TC_5G_n")
    wireless.apply_and_ok()
    wireless.apply()
    wireless.close_control_panel()
    for i in range(24):
        log.info("wait connect wireless...")
        time.sleep(5)
        if wireless.check_wireless_connected():
            log.info("wireless has connected")
            break
    else:
        log.error("connect wireless time out")
        wireless.set_wired_connection_priority()
        wired.enable_eth0()
        return [False, "connect wireless time out"]

    log.info("start test case-----------------------------")
    log.info("start disable wireless")
    wireless.open_network()
    wireless.switch_to_wireless_tab()
    wireless.disable_wireless()  # disable wireless
    wireless.apply()
    add_edit_del = wait_element(pic("_gray_add_edit_del"), rate=0.99)
    if not add_edit_del:
        log.error("add, edit, delete not is gray")
        restore_wireless()
        return [False, "add, edit, delete not is gray"]
    log.info("add, edit, delete is gray")
    wireless.close_control_panel()
    if wireless.check_wireless_connected():
        log.error("wireless is connected")
        restore_wireless()
        return [False, "wireless is connected"]
    log.info("wireless is disconnected")
    if wait_element(pic("_systray_not_connect")):
        log.error("systray wireless icon is exist")
        restore_wireless()
        return [False, "systray wireless icon is exist"]
    wlan0 = subprocess.getoutput("ifconfig | grep -i wlan0")
    if wlan0:
        log.error("found the 'wlan0' use command 'ifconfig'")
        restore_wireless()
        return [False, "found the 'wlan0' use command 'ifconfig'"]
    log.info("systray wireless icon is not exist")
    log.info("start reboot")
    return [True, "step_1 test pass"]
def step_2_1():
    log.info("start step-1_2------------------------")
    cf.SwitchThinProMode("admin")
    wireless = network_setting.Wireless()
    log.info("start check whether wireless is connected after reboot")
    if wireless.check_wireless_connected():
        log.error("wireless is connected after reboot")
        return [
            False, "Known issues: At Condition(disable eth0) and Reboot, "
            "you can find wlan0 in terminal use command: ifconfig"
        ]
    log.info("wireless is disconnected after reboot")

    log.info("start check wireless systray icon")
    if wait_element(pic("_systray_not_connect")):
        log.error("found the wireless systray icon")
        return [False, "found the wireless systray icon"]
    log.info("not found the wireless systray icon")

    log.info("start check add, edit and delete button")
    wireless.open_network()
    wireless.switch_to_wireless_tab()
    if not wait_element(pic("_gray_add_edit_del"), rate=0.99):
        log.error("add, edit and delete button is not gray")
        return [False, "add, edit and delete button is not gray"]
    log.info("add, edit and delete button is gray")
    log.info("start step 2-------------------------")
    wireless.enable_wireless()
    wireless.apply()
    log.info("start check add, edit and delete button")
    if not wait_element(pic("_black_add_gray_edit_del"), rate=0.99):
        log.error("not found the black add and edit delete")
        return [False, "not found the black add and edit delete"]
    log.info("found the black add and edit delete")
    wireless.close_control_panel()

    for i in range(24):
        log.info("wait connect wireless...")
        time.sleep(5)
        if wireless.check_wireless_connected():
            log.info("wireless is connected")
            break
    else:
        log.error("connect wireless time out")
        return [False, "connect wireless time out"]

    if not wait_element(pic("_systray_connect")):
        log.warning("not found the wireless systray icon")
        pyautogui.screenshot(
            cf.get_current_dir(
                "Test_Report/ssid_disable_and_enable_wireless_error.png"))
        log.info("start check wireless use command and process")
        wlan0 = subprocess.getoutput("ifconfig | grep -i wlan0")
        if not wlan0:
            log.info("not found the 'wlan0' use command 'ifconfig'")
            return [
                False,
                "not found the wireless systray icon and the 'wlan0' use command 'ifconfig'"
            ]
        log.info("found the wlan0 use ifconfig")
        network_systray_icon_process = subprocess.getoutput(
            "ps -ef | grep 'hptc-network-mgr-systray'")
        if not network_systray_icon_process:
            log.error("not found the 'hptc-network-mgr-systray' process")
            return [
                False,
                "not found the wireless systray icon and 'hptc-network-mgr-systray' process"
            ]
        log.info("found the 'hptc-network-mgr-systray' process")
    log.info("found the wireless systray icon")
    log.info("start reboot")
    return [True, "step 2 success"]