<s> """<STR_LIT>""" <EOL> import time <EOL> import google3 <EOL> from grizzled . net . ftp . parse import * <EOL> current_year = time . localtime ( ) . tm_year <EOL> TEST_DATA = [ <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT:0> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:12> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:12> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT> , <EOL> '<STR_LIT:time>' : ( current_year , <NUM_LIT:1> , <NUM_LIT> , <NUM_LIT:0> <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT:8> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT> , <EOL> '<STR_LIT:time>' : ( current_year , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT> , <EOL> '<STR_LIT:time>' : ( current_year , <NUM_LIT:7> , <NUM_LIT:10> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT:0> , <EOL> '<STR_LIT:time>' : ( current_year , <NUM_LIT:5> , <NUM_LIT:9> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT> , <EOL> '<STR_LIT:time>' : ( current_year , <NUM_LIT:1> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT:2> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:5> , <NUM_LIT:10> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT:0> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:11> , <NUM_LIT:8> , <NUM_LIT:7> , <NUM_LIT:2> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT:0> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:12> , <NUM_LIT:30> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT:0> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> , <NUM_LIT:0> <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT:0> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:9> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT:0> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:16> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : <NUM_LIT> , <EOL> '<STR_LIT:time>' : ( <NUM_LIT> , <NUM_LIT:0> <NUM_LIT:4> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , - <NUM_LIT:1> ) , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False } , <EOL> ] <EOL> class TestFTPListParse ( object ) : <EOL> def setUp ( self ) : <EOL> pass <EOL> def assertEquals ( self , test_value , expected_value , prefix = None ) : <EOL> error_message = '<STR_LIT>' % prefix if prefix else '<STR_LIT>' <EOL> error_message += '<STR_LIT>' % ( expected_value , test_value ) <EOL> assert test_value == expected_value , error_message <EOL> def test_parsing ( self ) : <EOL> parser = FTPListDataParser ( ) <EOL> i = <NUM_LIT:0> <EOL> for t in TEST_DATA : <EOL> yield self . parse_one_line , parser , t , i <EOL> i += <NUM_LIT:1> <EOL> def parse_one_line ( self , parser , test_data , identifier ) : <EOL> line = test_data [ '<STR_LIT>' ] <EOL> prefix = '<STR_LIT>' % ( identifier , test_data [ '<STR_LIT:type>' ] ) <EOL> name = test_data [ '<STR_LIT:name>' ] <EOL> print '<STR_LIT>' % ( prefix , name ) <EOL> result = parser . parse_line ( line ) <EOL> self . assertEquals ( result . raw_line , line , prefix ) <EOL> self . assertEquals ( result . size , test_data [ '<STR_LIT:size>' ] , prefix ) <EOL> self . assertEquals ( result . name , name , prefix ) <EOL> self . assertEquals ( result . try_cwd , test_data [ '<STR_LIT>' ] , prefix ) <EOL> expected_time = time . mktime ( test_data [ '<STR_LIT:time>' ] ) <EOL> self . assertEquals ( time . localtime ( result . mtime ) , <EOL> time . localtime ( expected_time ) , <EOL> prefix ) <EOL> self . assertEquals ( result . mtime , expected_time , prefix ) </s>
