@@ -42,14 +42,19 @@ class FakeSocket(object):
4242
4343 FLUSH_GRACE_PERIOD = 0.2
4444
45- def __init__ (self , flush_interval = DEFAULT_BUFFERING_FLUSH_INTERVAL , socket_kind = socket .SOCK_DGRAM ):
45+ def __init__ (self , flush_interval = DEFAULT_BUFFERING_FLUSH_INTERVAL , socket_kind = socket .SOCK_DGRAM , socket_path = None ):
4646 self .payloads = deque ()
4747
4848 self ._flush_interval = flush_interval
4949 self ._flush_wait = False
5050 self ._socket_kind = socket_kind
5151 self .timeout = () # unit tuple = settimeout was not called
5252
53+ if socket_path :
54+ self .family = socket .AF_UNIX
55+ else :
56+ self .family = socket .AF_INET
57+
5358 def sendall (self , payload ):
5459 self .send (payload )
5560
@@ -768,19 +773,19 @@ def test_udp_socket_ensures_min_receive_buffer(self, mock_socket_create):
768773 MIN_SEND_BUFFER_SIZE ,
769774 )
770775
771- def test_socket_path_updates_telemetry (self ):
776+ def test_socket_updates_telemetry (self ):
772777 # Test UDP
773778 self .statsd .gauge ("foo" , 1 )
774779 self .assert_equal_telemetry ("foo:1|g\n " , self .recv (2 ), transport = "udp" )
775780
776781 # Test UDS
777- self .statsd .socket_path = "/fake/path"
782+ self .statsd .socket = FakeSocket ( socket_path = "/fake/path" )
778783 self .statsd ._reset_telemetry ()
779784 self .statsd .gauge ("foo" , 2 )
780785 self .assert_equal_telemetry ("foo:2|g\n " , self .recv (2 ), transport = "uds" )
781786
782787 # Test UDS stream
783- self .statsd .socket_path = "unixstream://fake/path"
788+ self .statsd .socket = FakeSocket ( socket_path = "unixstream://fake/path" , socket_kind = socket . SOCK_STREAM )
784789 self .statsd ._reset_telemetry ()
785790 self .statsd .gauge ("foo" , 2 )
786791 self .assert_equal_telemetry ("foo:2|g\n " , self .recv (2 ), transport = "uds-stream" )
@@ -1904,7 +1909,7 @@ def test_default_max_uds_packet_size(self):
19041909 flush_interval = 10000 ,
19051910 disable_telemetry = True ,
19061911 )
1907- dogstatsd .socket = FakeSocket ()
1912+ dogstatsd .socket = FakeSocket (socket_path = dogstatsd . socket_path )
19081913
19091914 for _ in range (10000 ):
19101915 dogstatsd .increment ('val' )
@@ -2110,7 +2115,13 @@ def test_telemetry_api(self):
21102115 def test_max_payload_size (self ):
21112116 statsd = DogStatsd (socket_path = None , port = 8125 )
21122117 self .assertEqual (statsd ._max_payload_size , UDP_OPTIMAL_PAYLOAD_LENGTH )
2113- statsd .socket_path = "/foo"
2118+
2119+ test_socket = socket .socket (socket .AF_INET , socket .SOCK_DGRAM )
2120+ statsd .socket = test_socket
2121+ self .assertEqual (statsd ._max_payload_size , UDP_OPTIMAL_PAYLOAD_LENGTH )
2122+
2123+ test_socket = socket .socket (socket .AF_UNIX , socket .SOCK_DGRAM )
2124+ statsd .socket = test_socket
21142125 self .assertEqual (statsd ._max_payload_size , UDS_OPTIMAL_PAYLOAD_LENGTH )
21152126
21162127 def test_post_fork_locks (self ):
0 commit comments