Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
2335de7a
Kaydet (Commit)
2335de7a
authored
Kas 16, 2013
tarafından
Guido van Rossum
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
asyncio: Replace connection_refused() with error_received().
üst
6f87a08a
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
39 additions
and
29 deletions
+39
-29
protocols.py
Lib/asyncio/protocols.py
+7
-5
selector_events.py
Lib/asyncio/selector_events.py
+6
-11
test_base_events.py
Lib/test/test_asyncio/test_base_events.py
+1
-1
test_events.py
Lib/test/test_asyncio/test_events.py
+2
-2
test_selector_events.py
Lib/test/test_asyncio/test_selector_events.py
+23
-10
No files found.
Lib/asyncio/protocols.py
Dosyayı görüntüle @
2335de7a
...
@@ -100,15 +100,18 @@ class DatagramProtocol(BaseProtocol):
...
@@ -100,15 +100,18 @@ class DatagramProtocol(BaseProtocol):
def
datagram_received
(
self
,
data
,
addr
):
def
datagram_received
(
self
,
data
,
addr
):
"""Called when some datagram is received."""
"""Called when some datagram is received."""
def
connection_refused
(
self
,
exc
):
def
error_received
(
self
,
exc
):
"""Connection is refused."""
"""Called when a send or receive operation raises an OSError.
(Other than BlockingIOError or InterruptedError.)
"""
class
SubprocessProtocol
(
BaseProtocol
):
class
SubprocessProtocol
(
BaseProtocol
):
"""ABC representing a protocol for subprocess calls."""
"""ABC representing a protocol for subprocess calls."""
def
pipe_data_received
(
self
,
fd
,
data
):
def
pipe_data_received
(
self
,
fd
,
data
):
"""Called when
subprocess write a data into stdout/stderr pipes
.
"""Called when
the subprocess writes data into stdout/stderr pipe
.
fd is int file dascriptor.
fd is int file dascriptor.
data is bytes object.
data is bytes object.
...
@@ -122,5 +125,4 @@ class SubprocessProtocol(BaseProtocol):
...
@@ -122,5 +125,4 @@ class SubprocessProtocol(BaseProtocol):
"""
"""
def
process_exited
(
self
):
def
process_exited
(
self
):
"""Called when subprocess has exited.
"""Called when subprocess has exited."""
"""
Lib/asyncio/selector_events.py
Dosyayı görüntüle @
2335de7a
...
@@ -771,6 +771,8 @@ class _SelectorDatagramTransport(_SelectorTransport):
...
@@ -771,6 +771,8 @@ class _SelectorDatagramTransport(_SelectorTransport):
data
,
addr
=
self
.
_sock
.
recvfrom
(
self
.
max_size
)
data
,
addr
=
self
.
_sock
.
recvfrom
(
self
.
max_size
)
except
(
BlockingIOError
,
InterruptedError
):
except
(
BlockingIOError
,
InterruptedError
):
pass
pass
except
OSError
as
exc
:
self
.
_protocol
.
error_received
(
exc
)
except
Exception
as
exc
:
except
Exception
as
exc
:
self
.
_fatal_error
(
exc
)
self
.
_fatal_error
(
exc
)
else
:
else
:
...
@@ -800,9 +802,8 @@ class _SelectorDatagramTransport(_SelectorTransport):
...
@@ -800,9 +802,8 @@ class _SelectorDatagramTransport(_SelectorTransport):
return
return
except
(
BlockingIOError
,
InterruptedError
):
except
(
BlockingIOError
,
InterruptedError
):
self
.
_loop
.
add_writer
(
self
.
_sock_fd
,
self
.
_sendto_ready
)
self
.
_loop
.
add_writer
(
self
.
_sock_fd
,
self
.
_sendto_ready
)
except
ConnectionRefusedError
as
exc
:
except
OSError
as
exc
:
if
self
.
_address
:
self
.
_protocol
.
error_received
(
exc
)
self
.
_fatal_error
(
exc
)
return
return
except
Exception
as
exc
:
except
Exception
as
exc
:
self
.
_fatal_error
(
exc
)
self
.
_fatal_error
(
exc
)
...
@@ -822,9 +823,8 @@ class _SelectorDatagramTransport(_SelectorTransport):
...
@@ -822,9 +823,8 @@ class _SelectorDatagramTransport(_SelectorTransport):
except
(
BlockingIOError
,
InterruptedError
):
except
(
BlockingIOError
,
InterruptedError
):
self
.
_buffer
.
appendleft
((
data
,
addr
))
# Try again later.
self
.
_buffer
.
appendleft
((
data
,
addr
))
# Try again later.
break
break
except
ConnectionRefusedError
as
exc
:
except
OSError
as
exc
:
if
self
.
_address
:
self
.
_protocol
.
error_received
(
exc
)
self
.
_fatal_error
(
exc
)
return
return
except
Exception
as
exc
:
except
Exception
as
exc
:
self
.
_fatal_error
(
exc
)
self
.
_fatal_error
(
exc
)
...
@@ -835,8 +835,3 @@ class _SelectorDatagramTransport(_SelectorTransport):
...
@@ -835,8 +835,3 @@ class _SelectorDatagramTransport(_SelectorTransport):
self
.
_loop
.
remove_writer
(
self
.
_sock_fd
)
self
.
_loop
.
remove_writer
(
self
.
_sock_fd
)
if
self
.
_closing
:
if
self
.
_closing
:
self
.
_call_connection_lost
(
None
)
self
.
_call_connection_lost
(
None
)
def
_force_close
(
self
,
exc
):
if
self
.
_address
and
isinstance
(
exc
,
ConnectionRefusedError
):
self
.
_protocol
.
connection_refused
(
exc
)
super
()
.
_force_close
(
exc
)
Lib/test/test_asyncio/test_base_events.py
Dosyayı görüntüle @
2335de7a
...
@@ -284,7 +284,7 @@ class MyDatagramProto(protocols.DatagramProtocol):
...
@@ -284,7 +284,7 @@ class MyDatagramProto(protocols.DatagramProtocol):
assert
self
.
state
==
'INITIALIZED'
,
self
.
state
assert
self
.
state
==
'INITIALIZED'
,
self
.
state
self
.
nbytes
+=
len
(
data
)
self
.
nbytes
+=
len
(
data
)
def
connection_refus
ed
(
self
,
exc
):
def
error_receiv
ed
(
self
,
exc
):
assert
self
.
state
==
'INITIALIZED'
,
self
.
state
assert
self
.
state
==
'INITIALIZED'
,
self
.
state
def
connection_lost
(
self
,
exc
):
def
connection_lost
(
self
,
exc
):
...
...
Lib/test/test_asyncio/test_events.py
Dosyayı görüntüle @
2335de7a
...
@@ -78,7 +78,7 @@ class MyDatagramProto(protocols.DatagramProtocol):
...
@@ -78,7 +78,7 @@ class MyDatagramProto(protocols.DatagramProtocol):
assert
self
.
state
==
'INITIALIZED'
,
self
.
state
assert
self
.
state
==
'INITIALIZED'
,
self
.
state
self
.
nbytes
+=
len
(
data
)
self
.
nbytes
+=
len
(
data
)
def
connection_refus
ed
(
self
,
exc
):
def
error_receiv
ed
(
self
,
exc
):
assert
self
.
state
==
'INITIALIZED'
,
self
.
state
assert
self
.
state
==
'INITIALIZED'
,
self
.
state
def
connection_lost
(
self
,
exc
):
def
connection_lost
(
self
,
exc
):
...
@@ -1557,7 +1557,7 @@ class ProtocolsAbsTests(unittest.TestCase):
...
@@ -1557,7 +1557,7 @@ class ProtocolsAbsTests(unittest.TestCase):
dp
=
protocols
.
DatagramProtocol
()
dp
=
protocols
.
DatagramProtocol
()
self
.
assertIsNone
(
dp
.
connection_made
(
f
))
self
.
assertIsNone
(
dp
.
connection_made
(
f
))
self
.
assertIsNone
(
dp
.
connection_lost
(
f
))
self
.
assertIsNone
(
dp
.
connection_lost
(
f
))
self
.
assertIsNone
(
dp
.
connection_refus
ed
(
f
))
self
.
assertIsNone
(
dp
.
error_receiv
ed
(
f
))
self
.
assertIsNone
(
dp
.
datagram_received
(
f
,
f
))
self
.
assertIsNone
(
dp
.
datagram_received
(
f
,
f
))
sp
=
protocols
.
SubprocessProtocol
()
sp
=
protocols
.
SubprocessProtocol
()
...
...
Lib/test/test_asyncio/test_selector_events.py
Dosyayı görüntüle @
2335de7a
...
@@ -1329,12 +1329,23 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1329,12 +1329,23 @@ class SelectorDatagramTransportTests(unittest.TestCase):
transport
=
_SelectorDatagramTransport
(
transport
=
_SelectorDatagramTransport
(
self
.
loop
,
self
.
sock
,
self
.
protocol
)
self
.
loop
,
self
.
sock
,
self
.
protocol
)
err
=
self
.
sock
.
recvfrom
.
side_effect
=
OS
Error
()
err
=
self
.
sock
.
recvfrom
.
side_effect
=
Runtime
Error
()
transport
.
_fatal_error
=
unittest
.
mock
.
Mock
()
transport
.
_fatal_error
=
unittest
.
mock
.
Mock
()
transport
.
_read_ready
()
transport
.
_read_ready
()
transport
.
_fatal_error
.
assert_called_with
(
err
)
transport
.
_fatal_error
.
assert_called_with
(
err
)
def
test_read_ready_oserr
(
self
):
transport
=
_SelectorDatagramTransport
(
self
.
loop
,
self
.
sock
,
self
.
protocol
)
err
=
self
.
sock
.
recvfrom
.
side_effect
=
OSError
()
transport
.
_fatal_error
=
unittest
.
mock
.
Mock
()
transport
.
_read_ready
()
self
.
assertFalse
(
transport
.
_fatal_error
.
called
)
self
.
protocol
.
error_received
.
assert_called_with
(
err
)
def
test_sendto
(
self
):
def
test_sendto
(
self
):
data
=
b
'data'
data
=
b
'data'
transport
=
_SelectorDatagramTransport
(
transport
=
_SelectorDatagramTransport
(
...
@@ -1380,7 +1391,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1380,7 +1391,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
@unittest.mock.patch
(
'asyncio.selector_events.logger'
)
@unittest.mock.patch
(
'asyncio.selector_events.logger'
)
def
test_sendto_exception
(
self
,
m_log
):
def
test_sendto_exception
(
self
,
m_log
):
data
=
b
'data'
data
=
b
'data'
err
=
self
.
sock
.
sendto
.
side_effect
=
OS
Error
()
err
=
self
.
sock
.
sendto
.
side_effect
=
Runtime
Error
()
transport
=
_SelectorDatagramTransport
(
transport
=
_SelectorDatagramTransport
(
self
.
loop
,
self
.
sock
,
self
.
protocol
)
self
.
loop
,
self
.
sock
,
self
.
protocol
)
...
@@ -1399,7 +1410,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1399,7 +1410,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
transport
.
sendto
(
data
)
transport
.
sendto
(
data
)
m_log
.
warning
.
assert_called_with
(
'socket.send() raised exception.'
)
m_log
.
warning
.
assert_called_with
(
'socket.send() raised exception.'
)
def
test_sendto_
connection_refus
ed
(
self
):
def
test_sendto_
error_receiv
ed
(
self
):
data
=
b
'data'
data
=
b
'data'
self
.
sock
.
sendto
.
side_effect
=
ConnectionRefusedError
self
.
sock
.
sendto
.
side_effect
=
ConnectionRefusedError
...
@@ -1412,7 +1423,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1412,7 +1423,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
self
.
assertEqual
(
transport
.
_conn_lost
,
0
)
self
.
assertEqual
(
transport
.
_conn_lost
,
0
)
self
.
assertFalse
(
transport
.
_fatal_error
.
called
)
self
.
assertFalse
(
transport
.
_fatal_error
.
called
)
def
test_sendto_
connection_refus
ed_connected
(
self
):
def
test_sendto_
error_receiv
ed_connected
(
self
):
data
=
b
'data'
data
=
b
'data'
self
.
sock
.
send
.
side_effect
=
ConnectionRefusedError
self
.
sock
.
send
.
side_effect
=
ConnectionRefusedError
...
@@ -1422,7 +1433,8 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1422,7 +1433,8 @@ class SelectorDatagramTransportTests(unittest.TestCase):
transport
.
_fatal_error
=
unittest
.
mock
.
Mock
()
transport
.
_fatal_error
=
unittest
.
mock
.
Mock
()
transport
.
sendto
(
data
)
transport
.
sendto
(
data
)
self
.
assertTrue
(
transport
.
_fatal_error
.
called
)
self
.
assertFalse
(
transport
.
_fatal_error
.
called
)
self
.
assertTrue
(
self
.
protocol
.
error_received
.
called
)
def
test_sendto_str
(
self
):
def
test_sendto_str
(
self
):
transport
=
_SelectorDatagramTransport
(
transport
=
_SelectorDatagramTransport
(
...
@@ -1495,7 +1507,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1495,7 +1507,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
list
(
transport
.
_buffer
))
list
(
transport
.
_buffer
))
def
test_sendto_ready_exception
(
self
):
def
test_sendto_ready_exception
(
self
):
err
=
self
.
sock
.
sendto
.
side_effect
=
OS
Error
()
err
=
self
.
sock
.
sendto
.
side_effect
=
Runtime
Error
()
transport
=
_SelectorDatagramTransport
(
transport
=
_SelectorDatagramTransport
(
self
.
loop
,
self
.
sock
,
self
.
protocol
)
self
.
loop
,
self
.
sock
,
self
.
protocol
)
...
@@ -1505,7 +1517,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1505,7 +1517,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
transport
.
_fatal_error
.
assert_called_with
(
err
)
transport
.
_fatal_error
.
assert_called_with
(
err
)
def
test_sendto_ready_
connection_refus
ed
(
self
):
def
test_sendto_ready_
error_receiv
ed
(
self
):
self
.
sock
.
sendto
.
side_effect
=
ConnectionRefusedError
self
.
sock
.
sendto
.
side_effect
=
ConnectionRefusedError
transport
=
_SelectorDatagramTransport
(
transport
=
_SelectorDatagramTransport
(
...
@@ -1516,7 +1528,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1516,7 +1528,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
self
.
assertFalse
(
transport
.
_fatal_error
.
called
)
self
.
assertFalse
(
transport
.
_fatal_error
.
called
)
def
test_sendto_ready_
connection_refus
ed_connection
(
self
):
def
test_sendto_ready_
error_receiv
ed_connection
(
self
):
self
.
sock
.
send
.
side_effect
=
ConnectionRefusedError
self
.
sock
.
send
.
side_effect
=
ConnectionRefusedError
transport
=
_SelectorDatagramTransport
(
transport
=
_SelectorDatagramTransport
(
...
@@ -1525,7 +1537,8 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1525,7 +1537,8 @@ class SelectorDatagramTransportTests(unittest.TestCase):
transport
.
_buffer
.
append
((
b
'data'
,
()))
transport
.
_buffer
.
append
((
b
'data'
,
()))
transport
.
_sendto_ready
()
transport
.
_sendto_ready
()
self
.
assertTrue
(
transport
.
_fatal_error
.
called
)
self
.
assertFalse
(
transport
.
_fatal_error
.
called
)
self
.
assertTrue
(
self
.
protocol
.
error_received
.
called
)
@unittest.mock.patch
(
'asyncio.log.logger.exception'
)
@unittest.mock.patch
(
'asyncio.log.logger.exception'
)
def
test_fatal_error_connected
(
self
,
m_exc
):
def
test_fatal_error_connected
(
self
,
m_exc
):
...
@@ -1533,7 +1546,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
...
@@ -1533,7 +1546,7 @@ class SelectorDatagramTransportTests(unittest.TestCase):
self
.
loop
,
self
.
sock
,
self
.
protocol
,
(
'0.0.0.0'
,
1
))
self
.
loop
,
self
.
sock
,
self
.
protocol
,
(
'0.0.0.0'
,
1
))
err
=
ConnectionRefusedError
()
err
=
ConnectionRefusedError
()
transport
.
_fatal_error
(
err
)
transport
.
_fatal_error
(
err
)
self
.
protocol
.
connection_refused
.
assert_called_with
(
err
)
self
.
assertFalse
(
self
.
protocol
.
error_received
.
called
)
m_exc
.
assert_called_with
(
'Fatal error for
%
s'
,
transport
)
m_exc
.
assert_called_with
(
'Fatal error for
%
s'
,
transport
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment