Show More
@@ -757,13 +757,13 b'' | |||||
757 | }; |
|
757 | }; | |
758 | }; |
|
758 | }; | |
759 | gprof2dot = super.buildPythonPackage { |
|
759 | gprof2dot = super.buildPythonPackage { | |
760 |
name = "gprof2dot-201 |
|
760 | name = "gprof2dot-2016.10.13"; | |
761 | buildInputs = with self; []; |
|
761 | buildInputs = with self; []; | |
762 | doCheck = false; |
|
762 | doCheck = false; | |
763 | propagatedBuildInputs = with self; []; |
|
763 | propagatedBuildInputs = with self; []; | |
764 | src = fetchurl { |
|
764 | src = fetchurl { | |
765 |
url = "https://pypi.python.org/packages/ |
|
765 | url = "https://pypi.python.org/packages/a0/e0/73c71baed306f0402a00a94ffc7b2be94ad1296dfcb8b46912655b93154c/gprof2dot-2016.10.13.tar.gz"; | |
766 | md5 = "e23bf4e2f94db032750c193384b4165b"; |
|
766 | md5 = "0125401f15fd2afe1df686a76c64a4fd"; | |
767 | }; |
|
767 | }; | |
768 | meta = { |
|
768 | meta = { | |
769 | license = [ { fullName = "LGPL"; } ]; |
|
769 | license = [ { fullName = "LGPL"; } ]; | |
@@ -1108,13 +1108,13 b'' | |||||
1108 | }; |
|
1108 | }; | |
1109 | }; |
|
1109 | }; | |
1110 | py = super.buildPythonPackage { |
|
1110 | py = super.buildPythonPackage { | |
1111 |
name = "py-1.4. |
|
1111 | name = "py-1.4.31"; | |
1112 | buildInputs = with self; []; |
|
1112 | buildInputs = with self; []; | |
1113 | doCheck = false; |
|
1113 | doCheck = false; | |
1114 | propagatedBuildInputs = with self; []; |
|
1114 | propagatedBuildInputs = with self; []; | |
1115 | src = fetchurl { |
|
1115 | src = fetchurl { | |
1116 | url = "https://pypi.python.org/packages/2a/bc/a1a4a332ac10069b8e5e25136a35e08a03f01fd6ab03d819889d79a1fd65/py-1.4.29.tar.gz"; |
|
1116 | url = "https://pypi.python.org/packages/f4/9a/8dfda23f36600dd701c6722316ba8a3ab4b990261f83e7d3ffc6dfedf7ef/py-1.4.31.tar.gz"; | |
1117 | md5 = "c28e0accba523a29b35a48bb703fb96c"; |
|
1117 | md5 = "5d2c63c56dc3f2115ec35c066ecd582b"; | |
1118 | }; |
|
1118 | }; | |
1119 | meta = { |
|
1119 | meta = { | |
1120 | license = [ pkgs.lib.licenses.mit ]; |
|
1120 | license = [ pkgs.lib.licenses.mit ]; | |
@@ -1290,13 +1290,13 b'' | |||||
1290 | }; |
|
1290 | }; | |
1291 | }; |
|
1291 | }; | |
1292 | pytest = super.buildPythonPackage { |
|
1292 | pytest = super.buildPythonPackage { | |
1293 |
name = "pytest- |
|
1293 | name = "pytest-3.0.5"; | |
1294 | buildInputs = with self; []; |
|
1294 | buildInputs = with self; []; | |
1295 | doCheck = false; |
|
1295 | doCheck = false; | |
1296 | propagatedBuildInputs = with self; [py]; |
|
1296 | propagatedBuildInputs = with self; [py]; | |
1297 | src = fetchurl { |
|
1297 | src = fetchurl { | |
1298 | url = "https://pypi.python.org/packages/b1/3d/d7ea9b0c51e0cacded856e49859f0a13452747491e842c236bbab3714afe/pytest-2.8.5.zip"; |
|
1298 | url = "https://pypi.python.org/packages/a8/87/b7ca49efe52d2b4169f2bfc49aa5e384173c4619ea8e635f123a0dac5b75/pytest-3.0.5.tar.gz"; | |
1299 | md5 = "8493b06f700862f1294298d6c1b715a9"; |
|
1299 | md5 = "cefd527b59332688bf5db4a10aa8a7cb"; | |
1300 | }; |
|
1300 | }; | |
1301 | meta = { |
|
1301 | meta = { | |
1302 | license = [ pkgs.lib.licenses.mit ]; |
|
1302 | license = [ pkgs.lib.licenses.mit ]; | |
@@ -1316,52 +1316,52 b'' | |||||
1316 | }; |
|
1316 | }; | |
1317 | }; |
|
1317 | }; | |
1318 | pytest-cov = super.buildPythonPackage { |
|
1318 | pytest-cov = super.buildPythonPackage { | |
1319 |
name = "pytest-cov- |
|
1319 | name = "pytest-cov-2.4.0"; | |
1320 | buildInputs = with self; []; |
|
1320 | buildInputs = with self; []; | |
1321 | doCheck = false; |
|
1321 | doCheck = false; | |
1322 |
propagatedBuildInputs = with self; [ |
|
1322 | propagatedBuildInputs = with self; [pytest coverage]; | |
1323 | src = fetchurl { |
|
1323 | src = fetchurl { | |
1324 | url = "https://pypi.python.org/packages/11/4b/b04646e97f1721878eb21e9f779102d84dd044d324382263b1770a3e4838/pytest-cov-1.8.1.tar.gz"; |
|
1324 | url = "https://pypi.python.org/packages/00/c0/2bfd1fcdb9d407b8ac8185b1cb5ff458105c6b207a9a7f0e13032de9828f/pytest-cov-2.4.0.tar.gz"; | |
1325 | md5 = "76c778afa2494088270348be42d759fc"; |
|
1325 | md5 = "2fda09677d232acc99ec1b3c5831e33f"; | |
1326 | }; |
|
1326 | }; | |
1327 | meta = { |
|
1327 | meta = { | |
1328 | license = [ pkgs.lib.licenses.mit ]; |
|
1328 | license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ]; | |
1329 | }; |
|
1329 | }; | |
1330 | }; |
|
1330 | }; | |
1331 | pytest-profiling = super.buildPythonPackage { |
|
1331 | pytest-profiling = super.buildPythonPackage { | |
1332 |
name = "pytest-profiling-1. |
|
1332 | name = "pytest-profiling-1.2.2"; | |
1333 | buildInputs = with self; []; |
|
1333 | buildInputs = with self; []; | |
1334 | doCheck = false; |
|
1334 | doCheck = false; | |
1335 | propagatedBuildInputs = with self; [six pytest gprof2dot]; |
|
1335 | propagatedBuildInputs = with self; [six pytest gprof2dot]; | |
1336 | src = fetchurl { |
|
1336 | src = fetchurl { | |
1337 |
url = "https://pypi.python.org/packages/ |
|
1337 | url = "https://pypi.python.org/packages/73/e8/804681323bac0bc45c520ec34185ba8469008942266d0074699b204835c1/pytest-profiling-1.2.2.tar.gz"; | |
1338 | md5 = "354404eb5b3fd4dc5eb7fffbb3d9b68b"; |
|
1338 | md5 = "0a16d7dda2d23b91e9730fa4558cf728"; | |
1339 | }; |
|
1339 | }; | |
1340 | meta = { |
|
1340 | meta = { | |
1341 | license = [ pkgs.lib.licenses.mit ]; |
|
1341 | license = [ pkgs.lib.licenses.mit ]; | |
1342 | }; |
|
1342 | }; | |
1343 | }; |
|
1343 | }; | |
1344 | pytest-runner = super.buildPythonPackage { |
|
1344 | pytest-runner = super.buildPythonPackage { | |
1345 |
name = "pytest-runner-2. |
|
1345 | name = "pytest-runner-2.9"; | |
1346 | buildInputs = with self; []; |
|
1346 | buildInputs = with self; []; | |
1347 | doCheck = false; |
|
1347 | doCheck = false; | |
1348 | propagatedBuildInputs = with self; []; |
|
1348 | propagatedBuildInputs = with self; []; | |
1349 | src = fetchurl { |
|
1349 | src = fetchurl { | |
1350 |
url = "https://pypi.python.org/packages/ |
|
1350 | url = "https://pypi.python.org/packages/11/d4/c335ddf94463e451109e3494e909765c3e5205787b772e3b25ee8601b86a/pytest-runner-2.9.tar.gz"; | |
1351 | md5 = "e56f0bc8d79a6bd91772b44ef4215c7e"; |
|
1351 | md5 = "2212a2e34404b0960b2fdc2c469247b2"; | |
1352 | }; |
|
1352 | }; | |
1353 | meta = { |
|
1353 | meta = { | |
1354 | license = [ pkgs.lib.licenses.mit ]; |
|
1354 | license = [ pkgs.lib.licenses.mit ]; | |
1355 | }; |
|
1355 | }; | |
1356 | }; |
|
1356 | }; | |
1357 | pytest-timeout = super.buildPythonPackage { |
|
1357 | pytest-timeout = super.buildPythonPackage { | |
1358 |
name = "pytest-timeout-0 |
|
1358 | name = "pytest-timeout-1.2.0"; | |
1359 | buildInputs = with self; []; |
|
1359 | buildInputs = with self; []; | |
1360 | doCheck = false; |
|
1360 | doCheck = false; | |
1361 | propagatedBuildInputs = with self; [pytest]; |
|
1361 | propagatedBuildInputs = with self; [pytest]; | |
1362 | src = fetchurl { |
|
1362 | src = fetchurl { | |
1363 |
url = "https://pypi.python.org/packages/2 |
|
1363 | url = "https://pypi.python.org/packages/cc/b7/b2a61365ea6b6d2e8881360ae7ed8dad0327ad2df89f2f0be4a02304deb2/pytest-timeout-1.2.0.tar.gz"; | |
1364 | md5 = "03b28aff69cbbfb959ed35ade5fde262"; |
|
1364 | md5 = "83607d91aa163562c7ee835da57d061d"; | |
1365 | }; |
|
1365 | }; | |
1366 | meta = { |
|
1366 | meta = { | |
1367 | license = [ pkgs.lib.licenses.mit { fullName = "DFSG approved"; } ]; |
|
1367 | license = [ pkgs.lib.licenses.mit { fullName = "DFSG approved"; } ]; |
@@ -39,7 +39,6 b' WebHelpers==1.3' | |||||
39 |
|
39 | |||
40 | WebHelpers2==2.0 |
|
40 | WebHelpers2==2.0 | |
41 | WebOb==1.3.1 |
|
41 | WebOb==1.3.1 | |
42 | WebTest==1.4.3 |
|
|||
43 | Whoosh==2.7.0 |
|
42 | Whoosh==2.7.0 | |
44 | alembic==0.8.4 |
|
43 | alembic==0.8.4 | |
45 | amqplib==1.0.2 |
|
44 | amqplib==1.0.2 | |
@@ -54,8 +53,6 b' channelstream==0.5.2' | |||||
54 | click==5.1 |
|
53 | click==5.1 | |
55 | colander==1.2 |
|
54 | colander==1.2 | |
56 | configobj==5.0.6 |
|
55 | configobj==5.0.6 | |
57 | cov-core==1.15.0 |
|
|||
58 | coverage==3.7.1 |
|
|||
59 | cssselect==0.9.1 |
|
56 | cssselect==0.9.1 | |
60 | decorator==3.4.2 |
|
57 | decorator==3.4.2 | |
61 | deform==2.0a2 |
|
58 | deform==2.0a2 | |
@@ -85,7 +82,6 b' itsdangerous==0.24' | |||||
85 | kombu==1.5.1 |
|
82 | kombu==1.5.1 | |
86 | lxml==3.4.4 |
|
83 | lxml==3.4.4 | |
87 | meld3==1.0.2 |
|
84 | meld3==1.0.2 | |
88 | mock==1.0.1 |
|
|||
89 | msgpack-python==0.4.6 |
|
85 | msgpack-python==0.4.6 | |
90 | nose==1.3.6 |
|
86 | nose==1.3.6 | |
91 | objgraph==2.0.0 |
|
87 | objgraph==2.0.0 | |
@@ -93,7 +89,6 b' packaging==15.2' | |||||
93 | paramiko==1.15.1 |
|
89 | paramiko==1.15.1 | |
94 | psutil==4.3.1 |
|
90 | psutil==4.3.1 | |
95 | psycopg2==2.6.1 |
|
91 | psycopg2==2.6.1 | |
96 | py==1.4.29 |
|
|||
97 | py-bcrypt==0.4 |
|
92 | py-bcrypt==0.4 | |
98 | py-gfm==0.1.3 |
|
93 | py-gfm==0.1.3 | |
99 | pycrypto==2.6.1 |
|
94 | pycrypto==2.6.1 | |
@@ -106,12 +101,6 b' pyramid-debugtoolbar==2.4.2' | |||||
106 | pyramid-jinja2==2.5 |
|
101 | pyramid-jinja2==2.5 | |
107 | pyramid-mako==1.0.2 |
|
102 | pyramid-mako==1.0.2 | |
108 | pysqlite==2.6.3 |
|
103 | pysqlite==2.6.3 | |
109 | pytest==2.8.5 |
|
|||
110 | pytest-runner==2.7.1 |
|
|||
111 | pytest-catchlog==1.2.2 |
|
|||
112 | pytest-cov==1.8.1 |
|
|||
113 | pytest-profiling==1.0.1 |
|
|||
114 | pytest-timeout==0.4 |
|
|||
115 | python-dateutil==1.5 |
|
104 | python-dateutil==1.5 | |
116 | python-ldap==2.4.19 |
|
105 | python-ldap==2.4.19 | |
117 | python-memcached==1.57 |
|
106 | python-memcached==1.57 | |
@@ -148,3 +137,18 b' zope.cachedescriptors==4.0.0' | |||||
148 | zope.deprecation==4.1.2 |
|
137 | zope.deprecation==4.1.2 | |
149 | zope.event==4.0.3 |
|
138 | zope.event==4.0.3 | |
150 | zope.interface==4.1.3 |
|
139 | zope.interface==4.1.3 | |
|
140 | ||||
|
141 | # test related requirements | |||
|
142 | pytest==3.0.5 | |||
|
143 | py==1.4.31 | |||
|
144 | pytest-runner==2.9.0 | |||
|
145 | pytest-catchlog==1.2.2 | |||
|
146 | pytest-cov==2.4.0 | |||
|
147 | pytest-profiling==1.2.2 | |||
|
148 | gprof2dot==2016.10.13 | |||
|
149 | pytest-timeout==1.2.0 | |||
|
150 | pytest-sugar==0.7.1 | |||
|
151 | mock==1.0.1 | |||
|
152 | WebTest==1.4.3 | |||
|
153 | cov-core==1.15.0 | |||
|
154 | coverage==3.7.1 |
@@ -122,13 +122,13 b' class TestHooksHttpHandler(object):' | |||||
122 | fake_date = '1/Nov/2015 00:00:00' |
|
122 | fake_date = '1/Nov/2015 00:00:00' | |
123 | date_patcher = mock.patch.object( |
|
123 | date_patcher = mock.patch.object( | |
124 | handler, 'log_date_time_string', return_value=fake_date) |
|
124 | handler, 'log_date_time_string', return_value=fake_date) | |
125 |
with date_patcher, caplog.at |
|
125 | with date_patcher, caplog.at_level(logging.DEBUG): | |
126 | handler.log_message('Some message %d, %s', 123, 'string') |
|
126 | handler.log_message('Some message %d, %s', 123, 'string') | |
127 |
|
127 | |||
128 | expected_message = '{} - - [{}] Some message 123, string'.format( |
|
128 | expected_message = '{} - - [{}] Some message 123, string'.format( | |
129 | ip_port[0], fake_date) |
|
129 | ip_port[0], fake_date) | |
130 | assert_message_in_log( |
|
130 | assert_message_in_log( | |
131 |
caplog.records |
|
131 | caplog.records, expected_message, | |
132 | levelno=logging.DEBUG, module='hooks_daemon') |
|
132 | levelno=logging.DEBUG, module='hooks_daemon') | |
133 |
|
133 | |||
134 | def _generate_post_request(self, data): |
|
134 | def _generate_post_request(self, data): | |
@@ -175,7 +175,7 b' class TestPyro4HooksCallbackDaemon(objec' | |||||
175 | def test_prepare_inits_pyro4_and_registers_hooks(self, caplog): |
|
175 | def test_prepare_inits_pyro4_and_registers_hooks(self, caplog): | |
176 | pyro4_daemon = mock.Mock() |
|
176 | pyro4_daemon = mock.Mock() | |
177 |
|
177 | |||
178 |
with self._pyro4_patcher(pyro4_daemon), caplog.at |
|
178 | with self._pyro4_patcher(pyro4_daemon), caplog.at_level(logging.DEBUG): | |
179 | daemon = hooks_daemon.Pyro4HooksCallbackDaemon() |
|
179 | daemon = hooks_daemon.Pyro4HooksCallbackDaemon() | |
180 |
|
180 | |||
181 | assert daemon._daemon == pyro4_daemon |
|
181 | assert daemon._daemon == pyro4_daemon | |
@@ -186,7 +186,7 b' class TestPyro4HooksCallbackDaemon(objec' | |||||
186 | assert isinstance(args[0], hooks_daemon.Hooks) |
|
186 | assert isinstance(args[0], hooks_daemon.Hooks) | |
187 |
|
187 | |||
188 | assert_message_in_log( |
|
188 | assert_message_in_log( | |
189 |
caplog.records |
|
189 | caplog.records, | |
190 | 'Preparing callback daemon and registering hook object', |
|
190 | 'Preparing callback daemon and registering hook object', | |
191 | levelno=logging.DEBUG, module='hooks_daemon') |
|
191 | levelno=logging.DEBUG, module='hooks_daemon') | |
192 |
|
192 | |||
@@ -213,7 +213,7 b' class TestPyro4HooksCallbackDaemon(objec' | |||||
213 | with self._pyro4_patcher(pyro4_daemon): |
|
213 | with self._pyro4_patcher(pyro4_daemon): | |
214 | daemon = hooks_daemon.Pyro4HooksCallbackDaemon() |
|
214 | daemon = hooks_daemon.Pyro4HooksCallbackDaemon() | |
215 |
|
215 | |||
216 |
with self._thread_patcher(thread), caplog.at |
|
216 | with self._thread_patcher(thread), caplog.at_level(logging.DEBUG): | |
217 | with daemon: |
|
217 | with daemon: | |
218 | assert daemon._daemon == pyro4_daemon |
|
218 | assert daemon._daemon == pyro4_daemon | |
219 | assert daemon._callback_thread == thread |
|
219 | assert daemon._callback_thread == thread | |
@@ -224,7 +224,7 b' class TestPyro4HooksCallbackDaemon(objec' | |||||
224 | thread.join.assert_called_once_with() |
|
224 | thread.join.assert_called_once_with() | |
225 |
|
225 | |||
226 | assert_message_in_log( |
|
226 | assert_message_in_log( | |
227 |
caplog.records |
|
227 | caplog.records, 'Waiting for background thread to finish.', | |
228 | levelno=logging.DEBUG, module='hooks_daemon') |
|
228 | levelno=logging.DEBUG, module='hooks_daemon') | |
229 |
|
229 | |||
230 | def _pyro4_patcher(self, daemon): |
|
230 | def _pyro4_patcher(self, daemon): | |
@@ -238,18 +238,18 b' class TestPyro4HooksCallbackDaemon(objec' | |||||
238 |
|
238 | |||
239 | class TestHttpHooksCallbackDaemon(object): |
|
239 | class TestHttpHooksCallbackDaemon(object): | |
240 | def test_prepare_inits_daemon_variable(self, tcp_server, caplog): |
|
240 | def test_prepare_inits_daemon_variable(self, tcp_server, caplog): | |
241 |
with self._tcp_patcher(tcp_server), caplog.at |
|
241 | with self._tcp_patcher(tcp_server), caplog.at_level(logging.DEBUG): | |
242 | daemon = hooks_daemon.HttpHooksCallbackDaemon() |
|
242 | daemon = hooks_daemon.HttpHooksCallbackDaemon() | |
243 | assert daemon._daemon == tcp_server |
|
243 | assert daemon._daemon == tcp_server | |
244 |
|
244 | |||
245 | assert_message_in_log( |
|
245 | assert_message_in_log( | |
246 |
caplog.records |
|
246 | caplog.records, | |
247 | 'Preparing callback daemon and registering hook object', |
|
247 | 'Preparing callback daemon and registering hook object', | |
248 | levelno=logging.DEBUG, module='hooks_daemon') |
|
248 | levelno=logging.DEBUG, module='hooks_daemon') | |
249 |
|
249 | |||
250 | def test_prepare_inits_hooks_uri_and_logs_it( |
|
250 | def test_prepare_inits_hooks_uri_and_logs_it( | |
251 | self, tcp_server, caplog): |
|
251 | self, tcp_server, caplog): | |
252 |
with self._tcp_patcher(tcp_server), caplog.at |
|
252 | with self._tcp_patcher(tcp_server), caplog.at_level(logging.DEBUG): | |
253 | daemon = hooks_daemon.HttpHooksCallbackDaemon() |
|
253 | daemon = hooks_daemon.HttpHooksCallbackDaemon() | |
254 |
|
254 | |||
255 | _, port = tcp_server.server_address |
|
255 | _, port = tcp_server.server_address | |
@@ -257,7 +257,7 b' class TestHttpHooksCallbackDaemon(object' | |||||
257 | assert daemon.hooks_uri == expected_uri |
|
257 | assert daemon.hooks_uri == expected_uri | |
258 |
|
258 | |||
259 | assert_message_in_log( |
|
259 | assert_message_in_log( | |
260 |
caplog.records |
|
260 | caplog.records, 'Hooks uri is: {}'.format(expected_uri), | |
261 | levelno=logging.DEBUG, module='hooks_daemon') |
|
261 | levelno=logging.DEBUG, module='hooks_daemon') | |
262 |
|
262 | |||
263 | def test_run_creates_a_thread(self, tcp_server): |
|
263 | def test_run_creates_a_thread(self, tcp_server): | |
@@ -280,11 +280,11 b' class TestHttpHooksCallbackDaemon(object' | |||||
280 | with self._tcp_patcher(tcp_server): |
|
280 | with self._tcp_patcher(tcp_server): | |
281 | daemon = hooks_daemon.HttpHooksCallbackDaemon() |
|
281 | daemon = hooks_daemon.HttpHooksCallbackDaemon() | |
282 |
|
282 | |||
283 |
with self._thread_patcher(mock.Mock()), caplog.at |
|
283 | with self._thread_patcher(mock.Mock()), caplog.at_level(logging.DEBUG): | |
284 | daemon._run() |
|
284 | daemon._run() | |
285 |
|
285 | |||
286 | assert_message_in_log( |
|
286 | assert_message_in_log( | |
287 |
caplog.records |
|
287 | caplog.records, | |
288 | 'Running event loop of callback daemon in background thread', |
|
288 | 'Running event loop of callback daemon in background thread', | |
289 | levelno=logging.DEBUG, module='hooks_daemon') |
|
289 | levelno=logging.DEBUG, module='hooks_daemon') | |
290 |
|
290 | |||
@@ -294,7 +294,7 b' class TestHttpHooksCallbackDaemon(object' | |||||
294 | with self._tcp_patcher(tcp_server): |
|
294 | with self._tcp_patcher(tcp_server): | |
295 | daemon = hooks_daemon.HttpHooksCallbackDaemon() |
|
295 | daemon = hooks_daemon.HttpHooksCallbackDaemon() | |
296 |
|
296 | |||
297 |
with self._thread_patcher(thread), caplog.at |
|
297 | with self._thread_patcher(thread), caplog.at_level(logging.DEBUG): | |
298 | with daemon: |
|
298 | with daemon: | |
299 | assert daemon._daemon == tcp_server |
|
299 | assert daemon._daemon == tcp_server | |
300 | assert daemon._callback_thread == thread |
|
300 | assert daemon._callback_thread == thread | |
@@ -305,7 +305,7 b' class TestHttpHooksCallbackDaemon(object' | |||||
305 | thread.join.assert_called_once_with() |
|
305 | thread.join.assert_called_once_with() | |
306 |
|
306 | |||
307 | assert_message_in_log( |
|
307 | assert_message_in_log( | |
308 |
caplog.records |
|
308 | caplog.records, 'Waiting for background thread to finish.', | |
309 | levelno=logging.DEBUG, module='hooks_daemon') |
|
309 | levelno=logging.DEBUG, module='hooks_daemon') | |
310 |
|
310 | |||
311 | def _tcp_patcher(self, tcp_server): |
|
311 | def _tcp_patcher(self, tcp_server): |
@@ -37,7 +37,7 b' def test_uses_persistent_http_connection' | |||||
37 | remote_call(normal=True, closed=False) |
|
37 | remote_call(normal=True, closed=False) | |
38 |
|
38 | |||
39 | new_connections = [ |
|
39 | new_connections = [ | |
40 |
r for r in caplog.record_tuples |
|
40 | r for r in caplog.record_tuples if is_new_connection(*r)] | |
41 | assert len(new_connections) <= 1 |
|
41 | assert len(new_connections) <= 1 | |
42 |
|
42 | |||
43 |
|
43 |
General Comments 0
You need to be logged in to leave comments.
Login now