@@ -2670,6 +2670,33 @@ def testBindBrEdrL2capSocket(self):
2670
2670
addr = f .getsockname ()
2671
2671
self .assertEqual (addr , (socket .BDADDR_ANY , psm ))
2672
2672
2673
+ def testBindRfcommSocket (self ):
2674
+ with socket .socket (socket .AF_BLUETOOTH , socket .SOCK_STREAM , socket .BTPROTO_RFCOMM ) as s :
2675
+ channel = 0
2676
+ s .bind ((socket .BDADDR_ANY , channel ))
2677
+ addr = s .getsockname ()
2678
+ self .assertEqual (addr , (socket .BDADDR_ANY , channel ))
2679
+
2680
+ @unittest .skipUnless (hasattr (socket , 'BTPROTO_HCI' ), 'Bluetooth HCI sockets required for this test' )
2681
+ def testBindHciSocket (self ):
2682
+ with socket .socket (socket .AF_BLUETOOTH , socket .SOCK_RAW , socket .BTPROTO_HCI ) as s :
2683
+ if sys .platform .startswith (('netbsd' , 'dragonfly' , 'freebsd' )):
2684
+ s .bind (socket .BDADDR_ANY .encode ())
2685
+ addr = s .getsockname ()
2686
+ self .assertEqual (addr , socket .BDADDR_ANY )
2687
+ else :
2688
+ dev = 0
2689
+ s .bind ((dev ,))
2690
+ addr = s .getsockname ()
2691
+ self .assertEqual (addr , dev )
2692
+
2693
+ @unittest .skipUnless (hasattr (socket , 'BTPROTO_SCO' ), 'Bluetooth SCO sockets required for this test' )
2694
+ def testBindScoSocket (self ):
2695
+ with socket .socket (socket .AF_BLUETOOTH , socket .SOCK_SEQPACKET , socket .BTPROTO_SCO ) as s :
2696
+ s .bind (socket .BDADDR_ANY .encode ())
2697
+ addr = s .getsockname ()
2698
+ self .assertEqual (addr , socket .BDADDR_ANY )
2699
+
2673
2700
2674
2701
@unittest .skipUnless (HAVE_SOCKET_HYPERV ,
2675
2702
'Hyper-V sockets required for this test.' )
0 commit comments