Skip to content

Commit 3163856

Browse files
authored
tests: misc. improvements (#503)
Mainly reduce warnings during tests.
1 parent a869b28 commit 3163856

File tree

8 files changed

+57
-63
lines changed

8 files changed

+57
-63
lines changed

tests/DefaultsTest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class OutOfTreeWorker(object):
113113
sys.path.append(dname)
114114
self.defaults.distant_workername = 'OutOfTree'
115115
task = task_self(self.defaults)
116-
self.assertTrue(task.default("distant_worker").__name__ is 'OutOfTreeWorker')
116+
self.assertEqual(task.default("distant_worker").__name__, 'OutOfTreeWorker')
117117
task_terminate()
118118
shutil.rmtree(dname, ignore_errors=True)
119119

tests/MisusageTest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class MisusageTest(unittest.TestCase):
1818
def testTaskResumedTwice(self):
1919
"""test library misusage (task_self resumed twice)"""
2020
class ResumeAgainHandler(EventHandler):
21-
def ev_read(self, worker):
21+
def ev_read(self, worker, node, sname, msg):
2222
worker.task.resume()
2323
task = task_self()
2424
task.shell("/bin/echo OK", handler=ResumeAgainHandler())

tests/StreamWorkerTest.py

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,13 @@ def __init__(self, testcase):
4242
self.snames = set()
4343
self.testcase = testcase
4444

45-
def ev_error(self, worker):
46-
# test that ev_error is called in case of 'stderr' stream name
47-
self.testcase.assertEqual(worker.current_sname, "stderr")
48-
self.recv_msg(worker.current_errmsg)
45+
def ev_read(self, worker, node, sname, msg):
46+
self.recv_msg(sname, msg)
4947

50-
def ev_read(self, worker):
51-
self.recv_msg(worker.current_msg)
52-
53-
def recv_msg(self, msg):
48+
def recv_msg(self, sname, msg):
5449
self.testcase.assertTrue(len(self.snames) < len(streams))
55-
self.testcase.assertEqual(streams[worker.current_sname], msg)
56-
self.snames.add(worker.current_sname)
50+
self.testcase.assertEqual(streams[sname], msg)
51+
self.snames.add(sname)
5752
if len(self.snames) == len(streams):
5853
# before finishing, try to add another pipe at
5954
# runtime: this is NOT allowed
@@ -93,25 +88,25 @@ def __init__(self, testcase):
9388
self.pickup_count = 0
9489
self.hup_count = 0
9590

96-
def ev_pickup(self, worker):
91+
def ev_pickup(self, worker, node):
9792
self.pickup_count += 1
9893

99-
def ev_read(self, worker):
100-
self.testcase.assertEqual(worker.current_sname, "pipe1")
101-
worker.write(worker.current_msg, "pipe2")
94+
def ev_read(self, worker, node, sname, msg):
95+
self.testcase.assertEqual(sname, "pipe1")
96+
worker.write(msg, "pipe2")
10297

10398
def ev_timer(self, timer):
10499
# call set_write_eof on specific stream after some delay
105100
worker = self.worker
106101
self.worker = 'DONE'
107102
worker.set_write_eof("pipe2")
108103

109-
def ev_hup(self, worker):
104+
def ev_hup(self, worker, node, rc):
110105
# ev_hup called at the end (after set_write_eof is called)
111106
self.hup_count += 1
112107
self.testcase.assertEqual(self.worker, 'DONE')
113108
# no rc code should be set
114-
self.testcase.assertEqual(worker.current_rc, None)
109+
self.testcase.assertEqual(rc, None)
115110

116111
# create a StreamWorker instance bound to several pipes
117112
hdlr = TestH(self)
@@ -172,21 +167,22 @@ def __init__(self, testcase):
172167
self.ev_hup_called = False
173168
self.ev_timeout_called = False
174169

175-
def ev_pickup(self, worker):
170+
def ev_pickup(self, worker, node):
176171
self.ev_pickup_called = True
177172

178-
def ev_read(self, worker):
173+
def ev_read(self, worker, node, sname, msg):
179174
self.ev_read_called = True
180-
self.testcase.assertEqual(worker.current_sname, "pipe1")
181-
self.testcase.assertEqual(worker.current_msg, b"Some data")
175+
self.testcase.assertEqual(sname, "pipe1")
176+
self.testcase.assertEqual(msg, b"Some data")
182177

183-
def ev_hup(self, worker):
178+
def ev_hup(self, worker, node, rc):
184179
# ev_hup is called but no rc code should be set
185180
self.ev_hup_called = True
186-
self.testcase.assertEqual(worker.current_rc, None)
181+
self.testcase.assertEqual(rc, None)
187182

188-
def ev_timeout(self, worker):
189-
self.ev_timeout_called = True
183+
def ev_close(self, worker, timedout):
184+
if timedout:
185+
self.ev_timeout_called = True
190186

191187
hdlr = TestH(self)
192188
worker = StreamWorker(handler=hdlr, timeout=0.5)
@@ -284,7 +280,7 @@ def __init__(self, testcase, rfd):
284280
self.check_hup = 0
285281
self.check_written = 0
286282

287-
def ev_hup(self, worker):
283+
def ev_hup(self, worker, node, rc):
288284
self.check_hup += 1
289285

290286
def ev_written(self, worker, node, sname, size):

tests/TaskEventTest.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,6 @@ def ev_close(self, worker, did_timeout):
136136
assert worker.read().startswith(b"abcdefghijklmnopqrstuvwxyz")
137137

138138

139-
class AbortOnReadHandler(EventHandler):
140-
def ev_read(self, worker):
141-
worker.abort()
142-
143-
144139
class TaskEventTest(unittest.TestCase):
145140

146141
def run_task_and_catch_warnings(self, task, expected_warn_cnt=0,

tests/TaskLocalMixin.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -436,15 +436,15 @@ def ev_start(self, worker):
436436

437437
def testEscape(self):
438438
task = task_self()
439-
worker = task.shell("export CSTEST=foobar; /bin/echo \$CSTEST | sed 's/\ foo/bar/'")
439+
worker = task.shell(r"export CSTEST=foobar; /bin/echo \$CSTEST | sed 's/\ foo/bar/'")
440440
# execute
441441
task.resume()
442442
# read result
443443
self.assertEqual(worker.read(), b"$CSTEST")
444444

445445
def testEscape2(self):
446446
task = task_self()
447-
worker = task.shell("export CSTEST=foobar; /bin/echo $CSTEST | sed 's/\ foo/bar/'")
447+
worker = task.shell(r"export CSTEST=foobar; /bin/echo $CSTEST | sed 's/\ foo/bar/'")
448448
# execute
449449
task.resume()
450450
# read result

tests/TaskTimerTest.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,10 @@ def ev_written(self, worker, node, sname, size):
179179
def ev_hup(self, worker, node, rc):
180180
self.test.assertTrue(self.flags & EV_START)
181181
self.flags |= EV_HUP
182-
def ev_timeout(self, worker):
183-
self.test.assertTrue(self.flags & EV_START)
184-
self.flags |= EV_TIMEOUT
185182
def ev_close(self, worker, timedout):
186183
self.test.assertTrue(self.flags & EV_START)
184+
if timedout:
185+
self.flags |= EV_TIMEOUT
187186
self.flags |= EV_CLOSE
188187
def ev_timer(self, timer):
189188
self.flags |= EV_TIMER
@@ -222,11 +221,10 @@ def ev_written(self, worker):
222221
def ev_hup(self, worker, node, rc):
223222
self.test.assertTrue(self.flags & EV_START)
224223
self.flags |= EV_HUP
225-
def ev_timeout(self, worker):
226-
self.test.assertTrue(self.flags & EV_START)
227-
self.flags |= EV_TIMEOUT
228224
def ev_close(self, worker, timedout):
229225
self.test.assertTrue(self.flags & EV_START)
226+
if timedout:
227+
self.flags |= EV_TIMEOUT
230228
self.flags |= EV_CLOSE
231229
def ev_timer(self, timer):
232230
self.flags |= EV_TIMER
@@ -266,11 +264,10 @@ def ev_written(self, worker):
266264
def ev_hup(self, worker, node, rc):
267265
self.test.assertTrue(self.flags & EV_START)
268266
self.flags |= EV_HUP
269-
def ev_timeout(self, worker):
270-
self.test.assertTrue(self.flags & EV_START)
271-
self.flags |= EV_TIMEOUT
272267
def ev_close(self, worker, timedout):
273268
self.test.assertTrue(self.flags & EV_START)
269+
if timedout:
270+
self.flags |= EV_TIMEOUT
274271
self.flags |= EV_CLOSE
275272
def ev_timer(self, timer):
276273
self.flags |= EV_TIMER
@@ -335,11 +332,10 @@ def ev_written(self, worker):
335332
def ev_hup(self, worker, node, rc):
336333
self.test.assertTrue(self.flags & EV_START)
337334
self.flags |= EV_HUP
338-
def ev_timeout(self, worker):
339-
self.test.assertTrue(self.flags & EV_START)
340-
self.flags |= EV_TIMEOUT
341335
def ev_close(self, worker, timedout):
342336
self.test.assertTrue(self.flags & EV_START)
337+
if timedout:
338+
self.flags |= EV_TIMEOUT
343339
self.flags |= EV_CLOSE
344340
# set next fire delay, also disable previously setup interval
345341
# (timer will not repeat anymore)

tests/TreeTopologyTest.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ def testAddingSeveralRoutes(self):
4949
# Add the same dst nodeset twice (no error)
5050
g.add_route(ns0, ns2)
5151

52-
self.assertEquals(g.dest(admin), ns0)
53-
self.assertEquals(g.dest(ns0), ns1 | ns2)
52+
self.assertEqual(g.dest(admin), ns0)
53+
self.assertEqual(g.dest(ns0), ns1 | ns2)
5454

5555
def testBadLink(self):
5656
"""test detecting bad links in graph"""
@@ -216,7 +216,7 @@ def testNodeString(self):
216216
ns_tree = NodeSet()
217217
for nodegroup in tree:
218218
ns_tree.add(nodegroup.nodeset)
219-
self.assertEquals(ns, ns_tree)
219+
self.assertEqual(ns, ns_tree)
220220

221221
def testConfigurationParser(self):
222222
"""test configuration parsing"""
@@ -384,7 +384,7 @@ def testPrintingTree(self):
384384
display = str(tree)
385385
self.assertTrue(display == display_ref1 or display == display_ref2)
386386

387-
self.assertEquals(str(TopologyTree()), '<TopologyTree instance (empty)>')
387+
self.assertEqual(str(TopologyTree()), '<TopologyTree instance (empty)>')
388388

389389
def testAddingInvalidChildren(self):
390390
"""test detecting invalid children"""
@@ -393,46 +393,46 @@ def testAddingInvalidChildren(self):
393393
t1 = TopologyNodeGroup(NodeSet('node[10-19]'))
394394

395395
t0.add_child(t1)
396-
self.assertEquals(t0.children_ns(), t1.nodeset)
396+
self.assertEqual(t0.children_ns(), t1.nodeset)
397397
t0.add_child(t1)
398-
self.assertEquals(t0.children_ns(), t1.nodeset)
398+
self.assertEqual(t0.children_ns(), t1.nodeset)
399399

400400
def testRemovingChild(self):
401401
"""test child removal operation"""
402402
t0 = TopologyNodeGroup(NodeSet('node[0-9]'))
403403
t1 = TopologyNodeGroup(NodeSet('node[10-19]'))
404404

405405
t0.add_child(t1)
406-
self.assertEquals(t0.children_ns(), t1.nodeset)
406+
self.assertEqual(t0.children_ns(), t1.nodeset)
407407
t0.clear_child(t1)
408-
self.assertEquals(t0.children_ns(), None)
408+
self.assertEqual(t0.children_ns(), None)
409409

410410
t0.clear_child(t1) # error discarded
411411
self.assertRaises(ValueError, t0.clear_child, t1, strict=True)
412412

413413
t2 = TopologyNodeGroup(NodeSet('node[20-29]'))
414414
t0.add_child(t1)
415415
t0.add_child(t2)
416-
self.assertEquals(t0.children_ns(), t1.nodeset | t2.nodeset)
416+
self.assertEqual(t0.children_ns(), t1.nodeset | t2.nodeset)
417417
t0.clear_children()
418-
self.assertEquals(t0.children_ns(), None)
419-
self.assertEquals(t0.children_len(), 0)
418+
self.assertEqual(t0.children_ns(), None)
419+
self.assertEqual(t0.children_len(), 0)
420420

421421
def testStrConversions(self):
422422
"""test str() casts"""
423423
t = TopologyNodeGroup(NodeSet('admin0'))
424-
self.assertEquals(str(t), '<TopologyNodeGroup (admin0)>')
424+
self.assertEqual(str(t), '<TopologyNodeGroup (admin0)>')
425425

426426
t = TopologyRoutingTable()
427427
r0 = TopologyRoute(NodeSet('src[0-9]'), NodeSet('dst[5-8]'))
428428
r1 = TopologyRoute(NodeSet('src[10-19]'), NodeSet('dst[15-18]'))
429429

430-
self.assertEquals(str(r0), 'src[0-9] -> dst[5-8]')
430+
self.assertEqual(str(r0), 'src[0-9] -> dst[5-8]')
431431

432432
t.add_route(r0)
433433
t.add_route(r1)
434-
self.assertEquals(str(t), 'src[0-9] -> dst[5-8]\nsrc[10-19] -> dst[15-18]')
434+
self.assertEqual(str(t), 'src[0-9] -> dst[5-8]\nsrc[10-19] -> dst[15-18]')
435435

436436
g = TopologyGraph()
437437
# XXX: Actually if g is not empty other things will be printed out...
438-
self.assertEquals(str(g), '<TopologyGraph>\n')
438+
self.assertEqual(str(g), '<TopologyGraph>\n')

tests/TreeWorkerTest.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from os.path import basename, join
1616
import shutil
1717
import unittest
18+
import warnings
1819

1920
from ClusterShell.NodeSet import NodeSet
2021
from ClusterShell.Task import task_self, task_terminate, task_wait
@@ -133,7 +134,10 @@ def tearDown(self):
133134
def test_tree_run_event_legacy(self):
134135
"""test simple tree run with legacy EventHandler"""
135136
teh = TEventHandlerLegacy()
136-
self.task.run('echo Lorem Ipsum', nodes=NODE_DISTANT, handler=teh)
137+
with warnings.catch_warnings(record=True) as w:
138+
warnings.simplefilter("always")
139+
self.task.run('echo Lorem Ipsum', nodes=NODE_DISTANT, handler=teh)
140+
self.assertEqual(len(w), 4)
137141
self.assertEqual(teh.ev_start_cnt, 1)
138142
self.assertEqual(teh.ev_pickup_cnt, 1)
139143
self.assertEqual(teh.ev_read_cnt, 1)
@@ -146,7 +150,10 @@ def test_tree_run_event_legacy(self):
146150
def test_tree_run_event_legacy_timeout(self):
147151
"""test simple tree run with legacy EventHandler with timeout"""
148152
teh = TEventHandlerLegacy()
149-
self.task.run('sleep 10', nodes=NODE_DISTANT, handler=teh, timeout=0.5)
153+
with warnings.catch_warnings(record=True) as w:
154+
warnings.simplefilter("always")
155+
self.task.run('sleep 10', nodes=NODE_DISTANT, handler=teh, timeout=0.5)
156+
self.assertEqual(len(w), 2)
150157
self.assertEqual(teh.ev_start_cnt, 1)
151158
self.assertEqual(teh.ev_pickup_cnt, 1)
152159
self.assertEqual(teh.ev_read_cnt, 0) # nothing to read

0 commit comments

Comments
 (0)