@@ -42,7 +42,7 @@ def test_highlevel_reloaded(self):
4242 importlib .reload (queues )
4343
4444 def test_create_destroy (self ):
45- qid = _queues .create (2 , REPLACE , - 1 )
45+ qid = _queues .create (2 , REPLACE )
4646 _queues .destroy (qid )
4747 self .assertEqual (get_num_queues (), 0 )
4848 with self .assertRaises (queues .QueueNotFoundError ):
@@ -56,7 +56,7 @@ def test_not_destroyed(self):
5656 '-c' ,
5757 dedent (f"""
5858 import { _queues .__name__ } as _queues
59- _queues.create(2, { REPLACE } , -1 )
59+ _queues.create(2, { REPLACE } )
6060 """ ),
6161 )
6262 self .assertEqual (stdout , '' )
@@ -67,32 +67,53 @@ def test_not_destroyed(self):
6767
6868 def test_bind_release (self ):
6969 with self .subTest ('typical' ):
70- qid = _queues .create (2 , REPLACE , - 1 )
70+ qid = _queues .create (2 , REPLACE )
7171 _queues .bind (qid )
7272 _queues .release (qid )
7373 self .assertEqual (get_num_queues (), 0 )
7474
7575 with self .subTest ('bind too much' ):
76- qid = _queues .create (2 , REPLACE , - 1 )
76+ qid = _queues .create (2 , REPLACE )
7777 _queues .bind (qid )
7878 _queues .bind (qid )
7979 _queues .release (qid )
8080 _queues .destroy (qid )
8181 self .assertEqual (get_num_queues (), 0 )
8282
8383 with self .subTest ('nested' ):
84- qid = _queues .create (2 , REPLACE , - 1 )
84+ qid = _queues .create (2 , REPLACE )
8585 _queues .bind (qid )
8686 _queues .bind (qid )
8787 _queues .release (qid )
8888 _queues .release (qid )
8989 self .assertEqual (get_num_queues (), 0 )
9090
9191 with self .subTest ('release without binding' ):
92- qid = _queues .create (2 , REPLACE , - 1 )
92+ qid = _queues .create (2 , REPLACE )
9393 with self .assertRaises (queues .QueueError ):
9494 _queues .release (qid )
9595
96+ def test_parse_fallback (self ):
97+ # see https://github.com/python/cpython/pull/137686
98+ # does not raise TypeError / OverflowError / ValueError
99+ for arg in False , True , None , - 1 , 2 ** 1000 :
100+ _queues .create (2 , REPLACE , fallback = arg )
101+ msg = r'create\(\) takes at most 2 positional arguments'
102+ with self .assertRaisesRegex (TypeError , msg ):
103+ _queues .create (2 , REPLACE , - 1 )
104+
105+ obj = None
106+ unboundop = - 1
107+ for arg in False , True , None , - 1 , 2 ** 1000 :
108+ qid = _queues .create (2 , REPLACE )
109+ _queues .put (qid , obj , unboundop , fallback = arg )
110+ _queues .destroy (qid )
111+ msg = r'put\(\) takes at most 3 positional arguments'
112+ with self .assertRaisesRegex (TypeError , msg ):
113+ qid = _queues .create (2 , REPLACE )
114+ _queues .put (qid , obj , unboundop , - 1 )
115+ _queues .destroy (qid )
116+
96117
97118class QueueTests (TestBase ):
98119
0 commit comments