@@ -17,17 +17,18 @@ class TestFTPParse(unittest.TestCase):
1717 @mock .patch ("time.localtime" )
1818 def test_parse_time (self , mock_localtime ):
1919 self .assertEqual (
20- ftp_parse ._parse_time ("JUL 05 1974" , formats = ["%b %d %Y" ]),
21- 142214400.0 )
20+ ftp_parse ._parse_time ("JUL 05 1974" , formats = ["%b %d %Y" ]), 142214400.0
21+ )
2222
2323 mock_localtime .return_value = time2017
2424 self .assertEqual (
25- ftp_parse ._parse_time ("JUL 05 02:00" , formats = ["%b %d %H:%M" ]),
26- 1499220000.0 )
25+ ftp_parse ._parse_time ("JUL 05 02:00" , formats = ["%b %d %H:%M" ]), 1499220000.0
26+ )
2727
2828 self .assertEqual (
2929 ftp_parse ._parse_time ("05-07-17 02:00AM" , formats = ["%d-%m-%y %I:%M%p" ]),
30- 1499220000.0 )
30+ 1499220000.0 ,
31+ )
3132
3233 self .assertEqual (ftp_parse ._parse_time ("notadate" , formats = ["%b %d %Y" ]), None )
3334
@@ -164,39 +165,68 @@ def test_decode_linux(self, mock_localtime):
164165 def test_decode_windowsnt (self , mock_localtime ):
165166 mock_localtime .return_value = time2017
166167 directory = """\
168+ unparsable line
16716911-02-17 02:00AM <DIR> docs
16817011-02-17 02:12PM <DIR> images
169- 11-02-17 02:12PM <DIR> AM to PM
171+ 11-02-17 02:12PM <DIR> AM to PM
17017211-02-17 03:33PM 9276 logo.gif
173+ 05-11-20 22:11 <DIR> src
174+ 11-02-17 01:23 1 12
175+ 11-02-17 4:54 0 icon.bmp
176+ 11-02-17 4:54AM 0 icon.gif
177+ 11-02-17 4:54PM 0 icon.png
178+ 11-02-17 16:54 0 icon.jpg
171179"""
172180 expected = [
173181 {
174182 "basic" : {"is_dir" : True , "name" : "docs" },
175183 "details" : {"modified" : 1486778400.0 , "type" : 1 },
176- "ftp" : {
177- "ls" : "11-02-17 02:00AM <DIR> docs"
178- },
184+ "ftp" : {"ls" : "11-02-17 02:00AM <DIR> docs" },
179185 },
180186 {
181187 "basic" : {"is_dir" : True , "name" : "images" },
182188 "details" : {"modified" : 1486822320.0 , "type" : 1 },
183- "ftp" : {
184- "ls" : "11-02-17 02:12PM <DIR> images"
185- },
189+ "ftp" : {"ls" : "11-02-17 02:12PM <DIR> images" },
186190 },
187191 {
188192 "basic" : {"is_dir" : True , "name" : "AM to PM" },
189193 "details" : {"modified" : 1486822320.0 , "type" : 1 },
190- "ftp" : {
191- "ls" : "11-02-17 02:12PM <DIR> AM to PM"
192- },
194+ "ftp" : {"ls" : "11-02-17 02:12PM <DIR> AM to PM" },
193195 },
194196 {
195197 "basic" : {"is_dir" : False , "name" : "logo.gif" },
196198 "details" : {"modified" : 1486827180.0 , "size" : 9276 , "type" : 2 },
197- "ftp" : {
198- "ls" : "11-02-17 03:33PM 9276 logo.gif"
199- },
199+ "ftp" : {"ls" : "11-02-17 03:33PM 9276 logo.gif" },
200+ },
201+ {
202+ "basic" : {"is_dir" : True , "name" : "src" },
203+ "details" : {"modified" : 1604614260.0 , "type" : 1 },
204+ "ftp" : {"ls" : "05-11-20 22:11 <DIR> src" },
205+ },
206+ {
207+ "basic" : {"is_dir" : False , "name" : "12" },
208+ "details" : {"modified" : 1486776180.0 , "size" : 1 , "type" : 2 },
209+ "ftp" : {"ls" : "11-02-17 01:23 1 12" },
210+ },
211+ {
212+ "basic" : {"is_dir" : False , "name" : "icon.bmp" },
213+ "details" : {"modified" : 1486788840.0 , "size" : 0 , "type" : 2 },
214+ "ftp" : {"ls" : "11-02-17 4:54 0 icon.bmp" },
215+ },
216+ {
217+ "basic" : {"is_dir" : False , "name" : "icon.gif" },
218+ "details" : {"modified" : 1486788840.0 , "size" : 0 , "type" : 2 },
219+ "ftp" : {"ls" : "11-02-17 4:54AM 0 icon.gif" },
220+ },
221+ {
222+ "basic" : {"is_dir" : False , "name" : "icon.png" },
223+ "details" : {"modified" : 1486832040.0 , "size" : 0 , "type" : 2 },
224+ "ftp" : {"ls" : "11-02-17 4:54PM 0 icon.png" },
225+ },
226+ {
227+ "basic" : {"is_dir" : False , "name" : "icon.jpg" },
228+ "details" : {"modified" : 1486832040.0 , "size" : 0 , "type" : 2 },
229+ "ftp" : {"ls" : "11-02-17 16:54 0 icon.jpg" },
200230 },
201231 ]
202232
0 commit comments