Skip to content

Commit d8bc272

Browse files
committed
Merge remote-tracking branch 'origin/master' into 3-14
2 parents 4eea005 + 96b7ed3 commit d8bc272

File tree

3 files changed

+37
-17
lines changed

3 files changed

+37
-17
lines changed

.github/workflows/tests.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@ jobs:
5858
5959
- name: Install Python Deps
6060
if: steps.release.outputs.version == 0
61-
env:
62-
PIP_PRE: ${{ matrix.python-version == '3.13' && '1' || '0' }}
6361
run: |
6462
pip install -e .[test,dev]
6563

tests/test_base.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -576,9 +576,14 @@ def get_name(self):
576576
async def coro():
577577
pass
578578

579-
factory = lambda loop, coro, **kwargs: MyTask(
580-
coro, loop=loop, **kwargs
581-
)
579+
def factory(loop, coro, **kwargs):
580+
task = MyTask(coro, loop=loop, **kwargs)
581+
# Python moved the responsibility to set the name to the Task
582+
# class constructor, so MyTask.set_name is never called by
583+
# Python's create_task. Compensate for that here.
584+
if self.is_asyncio_loop() and "name" in kwargs:
585+
task.set_name(kwargs["name"])
586+
return task
582587

583588
self.assertIsNone(self.loop.get_task_factory())
584589
task = self.loop.create_task(coro(), name="mytask")

tests/test_dns.py

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ def patched_getaddrinfo(*args, **kwargs):
1010
# flag AI_CANONNAME, even if `host` is an IP
1111
rv = []
1212
result = socket.getaddrinfo(*args, **kwargs)
13+
first = True
1314
for af, sk, proto, canon_name, addr in result:
1415
if kwargs.get('flags', 0) & socket.AI_CANONNAME:
15-
if not canon_name:
16+
if not canon_name and first:
17+
first = False
1618
canon_name = args[0]
1719
if not isinstance(canon_name, str):
1820
canon_name = canon_name.decode('ascii')
@@ -24,7 +26,7 @@ def patched_getaddrinfo(*args, **kwargs):
2426

2527
class BaseTestDNS:
2628

27-
def _test_getaddrinfo(self, *args, _patch=False, **kwargs):
29+
def _test_getaddrinfo(self, *args, _patch=False, _sorted=False, **kwargs):
2830
err = None
2931
try:
3032
if _patch:
@@ -50,7 +52,17 @@ def _test_getaddrinfo(self, *args, _patch=False, **kwargs):
5052
if err is not None:
5153
raise err
5254

53-
self.assertEqual(a1, a2)
55+
if _sorted:
56+
if kwargs.get('flags', 0) & socket.AI_CANONNAME and a1 and a2:
57+
af, sk, proto, canon_name1, addr = a1[0]
58+
a1[0] = (af, sk, proto, '', addr)
59+
af, sk, proto, canon_name2, addr = a2[0]
60+
a2[0] = (af, sk, proto, '', addr)
61+
self.assertEqual(canon_name1, canon_name2)
62+
63+
self.assertEqual(sorted(a1), sorted(a2))
64+
else:
65+
self.assertEqual(a1, a2)
5466

5567
def _test_getnameinfo(self, *args, **kwargs):
5668
err = None
@@ -77,11 +89,13 @@ def _test_getnameinfo(self, *args, **kwargs):
7789
self.assertEqual(a1, a2)
7890

7991
def test_getaddrinfo_1(self):
80-
self._test_getaddrinfo('example.com', 80)
81-
self._test_getaddrinfo('example.com', 80, type=socket.SOCK_STREAM)
92+
self._test_getaddrinfo('example.com', 80, _sorted=True)
93+
self._test_getaddrinfo('example.com', 80, type=socket.SOCK_STREAM,
94+
_sorted=True)
8295

8396
def test_getaddrinfo_2(self):
84-
self._test_getaddrinfo('example.com', 80, flags=socket.AI_CANONNAME)
97+
self._test_getaddrinfo('example.com', 80, flags=socket.AI_CANONNAME,
98+
_sorted=True)
8599

86100
def test_getaddrinfo_3(self):
87101
self._test_getaddrinfo('a' + '1' * 50 + '.wat', 800)
@@ -92,12 +106,14 @@ def test_getaddrinfo_4(self):
92106
family=-1)
93107

94108
def test_getaddrinfo_5(self):
95-
self._test_getaddrinfo('example.com', '80')
96-
self._test_getaddrinfo('example.com', '80', type=socket.SOCK_STREAM)
109+
self._test_getaddrinfo('example.com', '80', _sorted=True)
110+
self._test_getaddrinfo('example.com', '80', type=socket.SOCK_STREAM,
111+
_sorted=True)
97112

98113
def test_getaddrinfo_6(self):
99-
self._test_getaddrinfo(b'example.com', b'80')
100-
self._test_getaddrinfo(b'example.com', b'80', type=socket.SOCK_STREAM)
114+
self._test_getaddrinfo(b'example.com', b'80', _sorted=True)
115+
self._test_getaddrinfo(b'example.com', b'80', type=socket.SOCK_STREAM,
116+
_sorted=True)
101117

102118
def test_getaddrinfo_7(self):
103119
self._test_getaddrinfo(None, 0)
@@ -116,8 +132,9 @@ def test_getaddrinfo_10(self):
116132
self._test_getaddrinfo(None, None, type=socket.SOCK_STREAM)
117133

118134
def test_getaddrinfo_11(self):
119-
self._test_getaddrinfo(b'example.com', '80')
120-
self._test_getaddrinfo(b'example.com', '80', type=socket.SOCK_STREAM)
135+
self._test_getaddrinfo(b'example.com', '80', _sorted=True)
136+
self._test_getaddrinfo(b'example.com', '80', type=socket.SOCK_STREAM,
137+
_sorted=True)
121138

122139
def test_getaddrinfo_12(self):
123140
# musl always returns ai_canonname but we don't

0 commit comments

Comments
 (0)