tplinkrouterc6u 5.9.1__tar.gz → 5.9.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/PKG-INFO +1 -1
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/setup.py +1 -1
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/test/test_client_ex.py +82 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/ex.py +3 -3
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/mr.py +4 -2
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u.egg-info/PKG-INFO +1 -1
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/LICENSE +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/README.md +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/setup.cfg +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/test/__init__.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/test/test_client_c1200.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/test/test_client_c6u.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/test/test_client_c80.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/test/test_client_deco.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/test/test_client_mr.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/test/test_client_wdr.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/test/test_client_xdr.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/__init__.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/__init__.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/c1200.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/c5400x.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/c6u.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/c80.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/deco.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/vr.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/wdr.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client/xdr.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/client_abstract.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/common/__init__.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/common/dataclass.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/common/encryption.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/common/exception.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/common/helper.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/common/package_enum.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u/provider.py +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u.egg-info/SOURCES.txt +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u.egg-info/dependency_links.txt +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u.egg-info/requires.txt +0 -0
- {tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u.egg-info/top_level.txt +0 -0
|
@@ -122,6 +122,88 @@ class TestTPLinkEXClient(TestCase):
|
|
|
122
122
|
self.assertEqual(status.devices[1].packets_sent, None) # TODO
|
|
123
123
|
self.assertEqual(status.devices[1].packets_received, None) # TODO
|
|
124
124
|
|
|
125
|
+
def test_get_status(self) -> None:
|
|
126
|
+
|
|
127
|
+
DEV2_ADT_LAN = ('{"data":[{"MACAddress":"a0:28:84:de:dd:5c","IPAddress":"192.168.4.1","stack":"1,0,0,0,0,0"}],'
|
|
128
|
+
'"operation":"gl","oid":"DEV2_ADT_LAN","success":true}')
|
|
129
|
+
DEV2_ADT_WAN = ('{"data":[{"enable":"1","stack":"1,0,0,0,0,0"}],"operation":"gl",'
|
|
130
|
+
'"oid":"DEV2_ADT_WAN","success":true}')
|
|
131
|
+
DEV2_ADT_WIFI_COMMON = ('{"data":[{"primaryEnable":"1","guestEnable":"0","stack":"1,0,0,0,0,0"},'
|
|
132
|
+
'{"primaryEnable":"0","guestEnable":"1","stack":"2,0,0,0,0,0"}],"operation":"gl",'
|
|
133
|
+
'"oid":"DEV2_ADT_WIFI_COMMON","success":true}')
|
|
134
|
+
DEV2_HOST_ENTRY = ('{"data":[{"active":"1","X_TP_LanConnType":"0","physAddress":"66-E2-02-BD-B5-1B",'
|
|
135
|
+
'"IPAddress":"192.168.30.10","hostName":"host1","stack":"1,0,0,0,0,0"},'
|
|
136
|
+
'{"active":"1","X_TP_LanConnType":"1","physAddress":"F4-A3-86-2D-41-B5",'
|
|
137
|
+
'"IPAddress":"192.168.30.11","hostName":"host2","stack":"2,0,0,0,0,0"}],"operation":"gl",'
|
|
138
|
+
'"oid":"DEV2_HOST_ENTRY","success":true}')
|
|
139
|
+
DEV2_MEM_STATUS = ('{"data":{"total":"192780","free":"78400","stack":"0,0,0,0,0,0"},"operation":"go",'
|
|
140
|
+
'"oid":"DEV2_MEM_STATUS","success":true}')
|
|
141
|
+
DEV2_PROC_STATUS = ('{"data":{"CPUUsage":"47","stack":"0,0,0,0,0,0"},"operation":"go",'
|
|
142
|
+
'"oid":"DEV2_PROC_STATUS","success":true}')
|
|
143
|
+
|
|
144
|
+
class TPLinkEXClientTest(TPLinkEXClient):
|
|
145
|
+
self._token = True
|
|
146
|
+
|
|
147
|
+
def _request(self, url, method='POST', data_str=None, encrypt=False):
|
|
148
|
+
if 'DEV2_ADT_LAN' in data_str:
|
|
149
|
+
return 200, DEV2_ADT_LAN
|
|
150
|
+
elif 'DEV2_ADT_WAN' in data_str:
|
|
151
|
+
return 200, DEV2_ADT_WAN
|
|
152
|
+
elif 'DEV2_ADT_WIFI_COMMON' in data_str:
|
|
153
|
+
return 200, DEV2_ADT_WIFI_COMMON
|
|
154
|
+
elif 'DEV2_HOST_ENTRY' in data_str:
|
|
155
|
+
return 200, DEV2_HOST_ENTRY
|
|
156
|
+
elif 'DEV2_MEM_STATUS' in data_str:
|
|
157
|
+
return 200, DEV2_MEM_STATUS
|
|
158
|
+
elif 'DEV2_PROC_STATUS' in data_str:
|
|
159
|
+
return 200, DEV2_PROC_STATUS
|
|
160
|
+
raise ClientException()
|
|
161
|
+
|
|
162
|
+
client = TPLinkEXClientTest('', '')
|
|
163
|
+
status = client.get_status()
|
|
164
|
+
|
|
165
|
+
self.assertIsInstance(status, Status)
|
|
166
|
+
self.assertEqual(status.wan_macaddr, None)
|
|
167
|
+
self.assertEqual(status.lan_macaddr, 'A0-28-84-DE-DD-5C')
|
|
168
|
+
self.assertIsInstance(status.lan_macaddress, EUI48)
|
|
169
|
+
self.assertEqual(status.wan_ipv4_addr, None)
|
|
170
|
+
self.assertEqual(status.lan_ipv4_addr, '192.168.4.1')
|
|
171
|
+
self.assertEqual(status.wan_ipv4_gateway, None)
|
|
172
|
+
self.assertEqual(status.wired_total, 1)
|
|
173
|
+
self.assertEqual(status.wifi_clients_total, 1)
|
|
174
|
+
self.assertEqual(status.guest_clients_total, 0)
|
|
175
|
+
self.assertEqual(status.clients_total, 2)
|
|
176
|
+
self.assertEqual(status.guest_2g_enable, False)
|
|
177
|
+
self.assertEqual(status.guest_5g_enable, True)
|
|
178
|
+
self.assertEqual(status.iot_2g_enable, None)
|
|
179
|
+
self.assertEqual(status.iot_5g_enable, None)
|
|
180
|
+
self.assertEqual(status.wifi_2g_enable, True)
|
|
181
|
+
self.assertEqual(status.wifi_5g_enable, False)
|
|
182
|
+
self.assertEqual(status.wan_ipv4_uptime, None)
|
|
183
|
+
self.assertGreaterEqual(status.mem_usage, 0)
|
|
184
|
+
self.assertLessEqual(status.mem_usage, 1)
|
|
185
|
+
self.assertGreaterEqual(status.cpu_usage, 0)
|
|
186
|
+
self.assertLessEqual(status.cpu_usage, 1)
|
|
187
|
+
self.assertEqual(len(status.devices), 2)
|
|
188
|
+
self.assertIsInstance(status.devices[0], Device)
|
|
189
|
+
self.assertEqual(status.devices[0].type, Connection.WIRED)
|
|
190
|
+
self.assertEqual(status.devices[0].macaddr, '66-E2-02-BD-B5-1B')
|
|
191
|
+
self.assertIsInstance(status.devices[0].macaddress, EUI48)
|
|
192
|
+
self.assertEqual(status.devices[0].ipaddr, '192.168.30.10')
|
|
193
|
+
self.assertIsInstance(status.devices[0].ipaddress, IPv4Address)
|
|
194
|
+
self.assertEqual(status.devices[0].hostname, 'host1')
|
|
195
|
+
self.assertEqual(status.devices[0].packets_sent, None)
|
|
196
|
+
self.assertEqual(status.devices[0].packets_received, None)
|
|
197
|
+
self.assertIsInstance(status.devices[1], Device)
|
|
198
|
+
self.assertEqual(status.devices[1].type, Connection.HOST_2G)
|
|
199
|
+
self.assertEqual(status.devices[1].macaddr, 'F4-A3-86-2D-41-B5')
|
|
200
|
+
self.assertIsInstance(status.devices[1].macaddress, EUI48)
|
|
201
|
+
self.assertEqual(status.devices[1].ipaddr, '192.168.30.11')
|
|
202
|
+
self.assertIsInstance(status.devices[1].ipaddress, IPv4Address)
|
|
203
|
+
self.assertEqual(status.devices[1].hostname, 'host2')
|
|
204
|
+
self.assertEqual(status.devices[1].packets_sent, None) # TODO
|
|
205
|
+
self.assertEqual(status.devices[1].packets_received, None) # TODO
|
|
206
|
+
|
|
125
207
|
def test_get_ipv4_reservations(self) -> None:
|
|
126
208
|
|
|
127
209
|
response = ('{"data":[{"enable":"1","chaddr":"bf:75:44:4c:dc:9e","yiaddr":"192.168.8.21",'
|
|
@@ -109,9 +109,9 @@ class TPLinkEXClient(TPLinkMRClientBase):
|
|
|
109
109
|
for item in values[1]:
|
|
110
110
|
if int(item['enable']) == 0 and values[1].__class__ == list:
|
|
111
111
|
continue
|
|
112
|
-
status._wan_macaddr = EUI48(item['MACAddr']) if item
|
|
113
|
-
status._wan_ipv4_addr = IPv4Address(item['connIPv4Address'])
|
|
114
|
-
status._wan_ipv4_gateway = IPv4Address(item['connIPv4Gateway'])
|
|
112
|
+
status._wan_macaddr = EUI48(item['MACAddr']) if item.get('MACAddr') else None
|
|
113
|
+
status._wan_ipv4_addr = IPv4Address(item['connIPv4Address']) if item.get('connIPv4Address') else None
|
|
114
|
+
status._wan_ipv4_gateway = IPv4Address(item['connIPv4Gateway']) if item.get('connIPv4Address') else None
|
|
115
115
|
|
|
116
116
|
if values[2].__class__ != list:
|
|
117
117
|
status.wifi_2g_enable = bool(int(values[2]['primaryEnable']))
|
|
@@ -550,10 +550,12 @@ class TPLinkMRClientBase(AbstractRouter):
|
|
|
550
550
|
raise Exception('Unsupported method ' + str(method))
|
|
551
551
|
|
|
552
552
|
# sometimes we get 500 here, not sure why... just retry the request
|
|
553
|
-
if r.status_code
|
|
553
|
+
if (r.status_code not in [500, 406]
|
|
554
|
+
and '<title>500 Internal Server Error</title>' not in r.text
|
|
555
|
+
and '<title>406 Not Acceptable</title>' not in r.text):
|
|
554
556
|
break
|
|
555
557
|
|
|
556
|
-
sleep(0.
|
|
558
|
+
sleep(0.1)
|
|
557
559
|
retry += 1
|
|
558
560
|
|
|
559
561
|
# decrypt the response, if needed
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tplinkrouterc6u-5.9.1 → tplinkrouterc6u-5.9.2}/tplinkrouterc6u.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|