mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-16 02:02:58 -07:00
Bump cherrypy from 18.8.0 to 18.9.0 (#2266)
* Bump cherrypy from 18.8.0 to 18.9.0 Bumps [cherrypy](https://github.com/cherrypy/cherrypy) from 18.8.0 to 18.9.0. - [Changelog](https://github.com/cherrypy/cherrypy/blob/main/CHANGES.rst) - [Commits](https://github.com/cherrypy/cherrypy/compare/v18.8.0...v18.9.0) --- updated-dependencies: - dependency-name: cherrypy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Update cherrypy==18.9.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> [skip ci]
This commit is contained in:
parent
cfefa928be
commit
faef9a94c4
673 changed files with 159850 additions and 11583 deletions
175
lib/win32/test/test_win32wnet.py
Normal file
175
lib/win32/test/test_win32wnet.py
Normal file
|
@ -0,0 +1,175 @@
|
|||
import unittest
|
||||
|
||||
import netbios
|
||||
import win32api
|
||||
import win32wnet
|
||||
from pywin32_testutil import str2bytes
|
||||
|
||||
RESOURCE_CONNECTED = 0x00000001
|
||||
RESOURCE_GLOBALNET = 0x00000002
|
||||
RESOURCE_REMEMBERED = 0x00000003
|
||||
RESOURCE_RECENT = 0x00000004
|
||||
RESOURCE_CONTEXT = 0x00000005
|
||||
RESOURCETYPE_ANY = 0x00000000
|
||||
RESOURCETYPE_DISK = 0x00000001
|
||||
RESOURCETYPE_PRINT = 0x00000002
|
||||
RESOURCETYPE_RESERVED = 0x00000008
|
||||
RESOURCETYPE_UNKNOWN = 0xFFFFFFFF
|
||||
RESOURCEUSAGE_CONNECTABLE = 0x00000001
|
||||
RESOURCEUSAGE_CONTAINER = 0x00000002
|
||||
RESOURCEDISPLAYTYPE_GENERIC = 0x00000000
|
||||
RESOURCEDISPLAYTYPE_DOMAIN = 0x00000001
|
||||
RESOURCEDISPLAYTYPE_SERVER = 0x00000002
|
||||
RESOURCEDISPLAYTYPE_SHARE = 0x00000003
|
||||
|
||||
|
||||
NETRESOURCE_attributes = [
|
||||
("dwScope", int),
|
||||
("dwType", int),
|
||||
("dwDisplayType", int),
|
||||
("dwUsage", int),
|
||||
("lpLocalName", str),
|
||||
("lpRemoteName", str),
|
||||
("lpComment", str),
|
||||
("lpProvider", str),
|
||||
]
|
||||
|
||||
NCB_attributes = [
|
||||
("Command", int),
|
||||
("Retcode", int),
|
||||
("Lsn", int),
|
||||
("Num", int),
|
||||
# ("Bufflen", int), - read-only
|
||||
("Callname", str),
|
||||
("Name", str),
|
||||
("Rto", int),
|
||||
("Sto", int),
|
||||
("Lana_num", int),
|
||||
("Cmd_cplt", int),
|
||||
("Event", int),
|
||||
("Post", int),
|
||||
]
|
||||
|
||||
|
||||
class TestCase(unittest.TestCase):
|
||||
def testGetUser(self):
|
||||
self.assertEqual(win32api.GetUserName(), win32wnet.WNetGetUser())
|
||||
|
||||
def _checkItemAttributes(self, item, attrs):
|
||||
for attr, typ in attrs:
|
||||
val = getattr(item, attr)
|
||||
if typ is int:
|
||||
self.assertTrue(
|
||||
type(val) in (int,), "Attr %r has value %r" % (attr, val)
|
||||
)
|
||||
new_val = val + 1
|
||||
elif typ is str:
|
||||
if val is not None:
|
||||
# on py2k, must be string or unicode. py3k must be string or bytes.
|
||||
self.assertTrue(
|
||||
type(val) in (str, str), "Attr %r has value %r" % (attr, val)
|
||||
)
|
||||
new_val = val + " new value"
|
||||
else:
|
||||
new_val = "new value"
|
||||
else:
|
||||
self.fail("Don't know what %s is" % (typ,))
|
||||
# set the attribute just to make sure we can.
|
||||
setattr(item, attr, new_val)
|
||||
|
||||
def testNETRESOURCE(self):
|
||||
nr = win32wnet.NETRESOURCE()
|
||||
self._checkItemAttributes(nr, NETRESOURCE_attributes)
|
||||
|
||||
def testWNetEnumResource(self):
|
||||
handle = win32wnet.WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, None)
|
||||
try:
|
||||
while 1:
|
||||
items = win32wnet.WNetEnumResource(handle, 0)
|
||||
if len(items) == 0:
|
||||
break
|
||||
for item in items:
|
||||
self._checkItemAttributes(item, NETRESOURCE_attributes)
|
||||
finally:
|
||||
handle.Close()
|
||||
|
||||
def testNCB(self):
|
||||
ncb = win32wnet.NCB()
|
||||
self._checkItemAttributes(ncb, NCB_attributes)
|
||||
|
||||
def testNetbios(self):
|
||||
# taken from the demo code in netbios.py
|
||||
ncb = win32wnet.NCB()
|
||||
ncb.Command = netbios.NCBENUM
|
||||
la_enum = netbios.LANA_ENUM()
|
||||
ncb.Buffer = la_enum
|
||||
rc = win32wnet.Netbios(ncb)
|
||||
self.assertEqual(rc, 0)
|
||||
for i in range(la_enum.length):
|
||||
ncb.Reset()
|
||||
ncb.Command = netbios.NCBRESET
|
||||
ncb.Lana_num = netbios.byte_to_int(la_enum.lana[i])
|
||||
rc = Netbios(ncb)
|
||||
self.assertEqual(rc, 0)
|
||||
ncb.Reset()
|
||||
ncb.Command = netbios.NCBASTAT
|
||||
ncb.Lana_num = byte_to_int(la_enum.lana[i])
|
||||
ncb.Callname = str2bytes("* ") # ensure bytes on py2x and 3k
|
||||
adapter = netbios.ADAPTER_STATUS()
|
||||
ncb.Buffer = adapter
|
||||
Netbios(ncb)
|
||||
# expect 6 bytes in the mac address.
|
||||
self.assertTrue(len(adapter.adapter_address), 6)
|
||||
|
||||
def iterConnectableShares(self):
|
||||
nr = win32wnet.NETRESOURCE()
|
||||
nr.dwScope = RESOURCE_GLOBALNET
|
||||
nr.dwUsage = RESOURCEUSAGE_CONTAINER
|
||||
nr.lpRemoteName = "\\\\" + win32api.GetComputerName()
|
||||
|
||||
handle = win32wnet.WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, nr)
|
||||
while 1:
|
||||
items = win32wnet.WNetEnumResource(handle, 0)
|
||||
if len(items) == 0:
|
||||
break
|
||||
for item in items:
|
||||
if item.dwDisplayType == RESOURCEDISPLAYTYPE_SHARE:
|
||||
yield item
|
||||
|
||||
def findUnusedDriveLetter(self):
|
||||
existing = [
|
||||
x[0].lower() for x in win32api.GetLogicalDriveStrings().split("\0") if x
|
||||
]
|
||||
handle = win32wnet.WNetOpenEnum(RESOURCE_REMEMBERED, RESOURCETYPE_DISK, 0, None)
|
||||
try:
|
||||
while 1:
|
||||
items = win32wnet.WNetEnumResource(handle, 0)
|
||||
if len(items) == 0:
|
||||
break
|
||||
xtra = [i.lpLocalName[0].lower() for i in items if i.lpLocalName]
|
||||
existing.extend(xtra)
|
||||
finally:
|
||||
handle.Close()
|
||||
for maybe in "defghijklmnopqrstuvwxyz":
|
||||
if maybe not in existing:
|
||||
return maybe
|
||||
self.fail("All drive mappings are taken?")
|
||||
|
||||
def testAddConnection(self):
|
||||
localName = self.findUnusedDriveLetter() + ":"
|
||||
for share in self.iterConnectableShares():
|
||||
share.lpLocalName = localName
|
||||
win32wnet.WNetAddConnection2(share)
|
||||
win32wnet.WNetCancelConnection2(localName, 0, 0)
|
||||
break
|
||||
|
||||
def testAddConnectionOld(self):
|
||||
localName = self.findUnusedDriveLetter() + ":"
|
||||
for share in self.iterConnectableShares():
|
||||
win32wnet.WNetAddConnection2(share.dwType, localName, share.lpRemoteName)
|
||||
win32wnet.WNetCancelConnection2(localName, 0, 0)
|
||||
break
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
Loading…
Add table
Add a link
Reference in a new issue