Skip to content

Commit

Permalink
Update test_client_c1200.py
Browse files Browse the repository at this point in the history
Added vpn tests
  • Loading branch information
swwgames authored Nov 20, 2024
1 parent 2490677 commit 08f6636
Showing 1 changed file with 80 additions and 0 deletions.
80 changes: 80 additions & 0 deletions test/test_client_c1200.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Connection,
ClientException
)
from tplinkrouterc6u.common.package_enum import VPN


class TestTPLinkC1200Client(TestCase):
Expand Down Expand Up @@ -137,6 +138,85 @@ def request(self, path: str, data: str,
self.assertEqual(client.captured_path, expected_path)
self.assertEqual(client.captured_data, expected_data)

def test_vpn_status(self) -> None:

response_openvpn_read = """
{
"enabled": "on",
"proto": "udp",
"access": "home",
"cert_exist": true,
"mask": "255.255.255.0",
"port": "1194",
"serverip": "10.8.0.0"
}"""

response_pptp_read = """
{
"enabled": "off",
"unencrypted_access": "on",
"samba_access": "on",
"netbios_pass": "on",
"remoteip": "10.0.0.11-20"
}
"""
respone_vpnconn_openvpn = """[{"username":"admin","remote_ip":"192.168.0.200","ipaddr":"10.0.0.11","extra":"7450","vpntype":"openvpn","key":"7450"},
{"username":"admin","remote_ip":"192.168.0.200","ipaddr":"10.0.0.11","extra":"7450","vpntype":"openvpn","key":"7450"}]
"""

respone_vpnconn_pptpvpn = """[{"username":"admin","remote_ip":"192.168.0.200","ipaddr":"10.0.0.11","extra":"7450","vpntype":"pptp","key":"7450"},
{"username":"admin","remote_ip":"192.168.0.200","ipaddr":"10.0.0.11","extra":"7450","vpntype":"pptp","key":"7450"},
{"username":"admin","remote_ip":"192.168.0.200","ipaddr":"10.0.0.11","extra":"7450","vpntype":"pptp","key":"7450"}]
"""


class TPLinkRouterTest(TplinkC1200Router):
def request(self, path: str, data: str,
ignore_response: bool = False, ignore_errors: bool = False) -> dict | None:
if path == '/admin/openvpn?form=config&operation=read':
return loads(response_openvpn_read)
if path == '/admin/pptpd?form=config&operation=read':
return loads(response_pptp_read)
if path == '/admin/vpnconn?form=config&operation=list&vpntype=openvpn':
return loads(respone_vpnconn_openvpn)
if path == '/admin/vpnconn?form=config&operation=list&vpntype=pptp':
return loads(respone_vpnconn_pptpvpn)
raise ClientException()

client = TPLinkRouterTest('', '')

vpn_status = client.get_vpn_status()
self.assertTrue(vpn_status.openvpn_enable)
self.assertFalse(vpn_status.pptpvpn_enable)
self.assertEqual(vpn_status.openvpn_clients_total, 2)
self.assertEqual(vpn_status.pptpvpn_clients_total, 3)

def test_set_vpn(self) -> None:
response_openvpn_read = """
{
"enabled": "on",
"proto": "udp",
"access": "home",
"cert_exist": true,
"mask": "255.255.255.0",
"port": "1194",
"serverip": "10.8.0.0"
}"""
class TPLinkRouterTest(TplinkC1200Router):
def request(self, path: str, data: str,
ignore_response: bool = False, ignore_errors: bool = False) -> dict | None:
if path == '/admin/openvpn?form=config&operation=read':
return loads(response_openvpn_read)
self.captured_path = path


client = TPLinkRouterTest('', '')
client.set_vpn(VPN.OPEN_VPN, True)


expected_path = "/admin/openvpn?form=config&operation=write&enabled=on&proto=udp&access=home&cert_exist=True&mask=255.255.255.0&port=1194&serverip=10.8.0.0"

self.assertEqual(client.captured_path, expected_path)

if __name__ == '__main__':
main()

0 comments on commit 08f6636

Please sign in to comment.