Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8bc8585

Browse files
committed
provide a common method to check for RETR_DATA validity, first checking the expected len and then the actual data content; this way we get a failure on len mismatch rather than content mismatch (which is very long and unreadable)
1 parent 0c5e52f commit 8bc8585

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

Lib/test/test_ftplib.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,10 @@ def tearDown(self):
461461
self.client.close()
462462
self.server.stop()
463463

464+
def check_data(self, received, expected):
465+
self.assertEqual(len(received), len(expected))
466+
self.assertEqual(received, expected)
467+
464468
def test_getwelcome(self):
465469
self.assertEqual(self.client.getwelcome(), '220 welcome')
466470

@@ -542,28 +546,25 @@ def callback(data):
542546
received.append(data.decode('ascii'))
543547
received = []
544548
self.client.retrbinary('retr', callback)
545-
self.assertEqual(''.join(received), RETR_DATA)
549+
self.check_data(''.join(received), RETR_DATA)
546550

547551
def test_retrbinary_rest(self):
548552
def callback(data):
549553
received.append(data.decode('ascii'))
550554
for rest in (0, 10, 20):
551555
received = []
552556
self.client.retrbinary('retr', callback, rest=rest)
553-
self.assertEqual(''.join(received), RETR_DATA[rest:],
554-
msg='rest test case %d %d %d' % (rest,
555-
len(''.join(received)),
556-
len(RETR_DATA[rest:])))
557+
self.check_data(''.join(received), RETR_DATA[rest:])
557558

558559
def test_retrlines(self):
559560
received = []
560561
self.client.retrlines('retr', received.append)
561-
self.assertEqual(''.join(received), RETR_DATA.replace('\r\n', ''))
562+
self.check_data(''.join(received), RETR_DATA.replace('\r\n', ''))
562563

563564
def test_storbinary(self):
564565
f = io.BytesIO(RETR_DATA.encode('ascii'))
565566
self.client.storbinary('stor', f)
566-
self.assertEqual(self.server.handler_instance.last_received_data, RETR_DATA)
567+
self.check_data(self.server.handler_instance.last_received_data, RETR_DATA)
567568
# test new callback arg
568569
flag = []
569570
f.seek(0)
@@ -580,7 +581,7 @@ def test_storbinary_rest(self):
580581
def test_storlines(self):
581582
f = io.BytesIO(RETR_DATA.replace('\r\n', '\n').encode('ascii'))
582583
self.client.storlines('stor', f)
583-
self.assertEqual(self.server.handler_instance.last_received_data, RETR_DATA)
584+
self.check_data(self.server.handler_instance.last_received_data, RETR_DATA)
584585
# test new callback arg
585586
flag = []
586587
f.seek(0)
@@ -781,6 +782,7 @@ def callback(data):
781782
received.append(data.decode('ascii'))
782783
received = []
783784
self.client.retrbinary('retr', callback)
785+
self.assertEqual(len(''.join(received)), len(RETR_DATA))
784786
self.assertEqual(''.join(received), RETR_DATA)
785787
self.client.set_pasv(True)
786788
retr()

0 commit comments

Comments
 (0)