MCPcopy Index your code
hub / github.com/python/cpython / test_mlsd

Method test_mlsd

Lib/test/test_ftplib.py:659–715  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

657 self.assertEqual(''.join(l), LIST_DATA.replace('\r\n', ''))
658
659 def test_mlsd(self):
660 list(self.client.mlsd())
661 list(self.client.mlsd(path='/'))
662 list(self.client.mlsd(path='/', facts=['size', 'type']))
663
664 ls = list(self.client.mlsd())
665 for name, facts in ls:
666 self.assertIsInstance(name, str)
667 self.assertIsInstance(facts, dict)
668 self.assertTrue(name)
669 self.assertIn('type', facts)
670 self.assertIn('perm', facts)
671 self.assertIn('unique', facts)
672
673 def set_data(data):
674 self.server.handler_instance.next_data = data
675
676 def test_entry(line, type=None, perm=None, unique=None, name=None):
677 type = 'type' if type is None else type
678 perm = 'perm' if perm is None else perm
679 unique = 'unique' if unique is None else unique
680 name = 'name' if name is None else name
681 set_data(line)
682 _name, facts = next(self.client.mlsd())
683 self.assertEqual(_name, name)
684 self.assertEqual(facts['type'], type)
685 self.assertEqual(facts['perm'], perm)
686 self.assertEqual(facts['unique'], unique)
687
688 # plain
689 test_entry('type=type;perm=perm;unique=unique; name\r\n')
690 # "=" in fact value
691 test_entry('type=ty=pe;perm=perm;unique=unique; name\r\n', type="ty=pe")
692 test_entry('type==type;perm=perm;unique=unique; name\r\n', type="=type")
693 test_entry('type=t=y=pe;perm=perm;unique=unique; name\r\n', type="t=y=pe")
694 test_entry('type=====;perm=perm;unique=unique; name\r\n', type="====")
695 # spaces in name
696 test_entry('type=type;perm=perm;unique=unique; na me\r\n', name="na me")
697 test_entry('type=type;perm=perm;unique=unique; name \r\n', name="name ")
698 test_entry('type=type;perm=perm;unique=unique; name\r\n', name=" name")
699 test_entry('type=type;perm=perm;unique=unique; n am e\r\n', name="n am e")
700 # ";" in name
701 test_entry('type=type;perm=perm;unique=unique; na;me\r\n', name="na;me")
702 test_entry('type=type;perm=perm;unique=unique; ;name\r\n', name=";name")
703 test_entry('type=type;perm=perm;unique=unique; ;name;\r\n', name=";name;")
704 test_entry('type=type;perm=perm;unique=unique; ;;;;\r\n', name=";;;;")
705 # case sensitiveness
706 set_data('Type=type;TyPe=perm;UNIQUE=unique; name\r\n')
707 _name, facts = next(self.client.mlsd())
708 for x in facts:
709 self.assertTrue(x.islower())
710 # no data (directory empty)
711 set_data('')
712 self.assertRaises(StopIteration, next, self.client.mlsd())
713 set_data('')
714 for x in self.client.mlsd():
715 self.fail("unexpected data %s" % x)
716

Callers

nothing calls this directly

Calls 8

listClass · 0.85
mlsdMethod · 0.80
assertIsInstanceMethod · 0.80
assertTrueMethod · 0.80
assertInMethod · 0.80
islowerMethod · 0.80
assertRaisesMethod · 0.45
failMethod · 0.45

Tested by

no test coverage detected