#!/usr/bin/python3 -cimport os, sys; os.execv(os.path.dirname(sys.argv[1]) + "/../common/pywrap", sys.argv)## Copyright (C) 2013 Red Hat, Inc.# SPDX-License-Identifier: LGPL-2.1-or-laterimport netlibimport testlib@testlib.nondestructiveclass TestNetworkingOther(netlib.NetworkCase):def testOther(self):b = self.browserm = self.machineiface = "tun0"# Create a tun device and let NetworkManager manage itm.execute(f"ip tuntap add mode tun dev {iface}")self.addCleanup(m.execute, f"ip link del dev {iface}")testlib.wait(lambda: m.execute(f'nmcli device | grep {iface} | grep -v unavailable'))m.execute(f"nmcli dev set {iface} managed yes")self.login_and_go("/network")self.wait_for_iface(iface, active=False)self.select_iface(iface)b.wait_visible("#network-interface")# Configure a manual IP address#self.configure_iface_setting('IPv4')b.wait_visible("#network-ip-settings-dialog")b.select_from_dropdown("#network-ip-settings-dialog select", "manual")b.set_input_text('#network-ip-settings-address-0', "1.2.3.4")b.set_input_text('#network-ip-settings-netmask-0', "24")b.click("#network-ip-settings-dialog button:contains('Save')")self.addCleanup(m.execute, "nmcli con del tun0")b.wait_not_present("#network-ip-settings-dialog")b.wait_visible("#network-interface")b.wait_text("#network-interface-name", "tun0")self.wait_for_iface_setting('IPv4', 'Address 1.2.3.4/24')self.toggle_onoff("label[for='interface-switch']")self.wait_onoff("#network-interface .pf-v6-c-card__header", val=True)with b.wait_timeout(60):self.wait_for_iface_setting('Status', '1.2.3.4/24')if __name__ == '__main__':testlib.test_main()