@ -295,6 +295,8 @@ class DownloadTests(unittest.TestCase):
shutil . rmtree ( output_dirname )
shutil . rmtree ( output_dirname )
sha1_hash = download_from_google_storage . get_sha1 ( output_filename )
sha1_hash = download_from_google_storage . get_sha1 ( output_filename )
input_filename = ' %s / %s ' % ( self . base_url , sha1_hash )
input_filename = ' %s / %s ' % ( self . base_url , sha1_hash )
# Initial download
self . queue . put ( ( sha1_hash , output_filename ) )
self . queue . put ( ( sha1_hash , output_filename ) )
self . queue . put ( ( None , None ) )
self . queue . put ( ( None , None ) )
stdout_queue = queue . Queue ( )
stdout_queue = queue . Queue ( )
@ -322,6 +324,64 @@ class DownloadTests(unittest.TestCase):
self . assertTrue ( os . path . exists ( output_dirname ) )
self . assertTrue ( os . path . exists ( output_dirname ) )
self . assertTrue ( os . path . exists ( extracted_filename ) )
self . assertTrue ( os . path . exists ( extracted_filename ) )
# Test noop download
self . queue . put ( ( sha1_hash , output_filename ) )
self . queue . put ( ( None , None ) )
stdout_queue = queue . Queue ( )
download_from_google_storage . _downloader_worker_thread ( 0 ,
self . queue ,
False ,
self . base_url ,
self . gsutil ,
stdout_queue ,
self . ret_codes ,
True ,
True ,
delete = False )
self . assertEqual ( list ( stdout_queue . queue ) , [ ] )
self . assertEqual ( self . gsutil . history , expected_calls )
self . assertEqual ( list ( self . ret_codes . queue ) , [ ] )
self . assertTrue ( os . path . exists ( output_dirname ) )
self . assertTrue ( os . path . exists ( extracted_filename ) )
# With dirty flag file, previous extraction wasn't complete
with open ( os . path . join ( self . base_path , ' subfolder.tmp ' ) , ' a ' ) :
pass
self . queue . put ( ( sha1_hash , output_filename ) )
self . queue . put ( ( None , None ) )
stdout_queue = queue . Queue ( )
download_from_google_storage . _downloader_worker_thread ( 0 ,
self . queue ,
False ,
self . base_url ,
self . gsutil ,
stdout_queue ,
self . ret_codes ,
True ,
True ,
delete = False )
expected_calls + = [ ( ' check_call ' , ( ' ls ' , input_filename ) ) ,
( ' check_call ' , ( ' cp ' , input_filename , output_filename ) ) ]
if sys . platform != ' win32 ' :
expected_calls . append (
( ' check_call ' , ( ' stat ' , ' gs://sometesturl/ %s ' % sha1_hash ) ) )
expected_output = [
' 0> Detected tmp flag file for %s , re-downloading... ' %
( output_filename ) ,
' 0> Downloading %s @ %s ... ' % ( output_filename , sha1_hash ) ,
' 0> Removed %s ... ' % ( output_dirname ) ,
' 0> Extracting 3 entries from %s to %s ' %
( output_filename , output_dirname ) ,
]
expected_ret_codes = [ ]
self . assertEqual ( list ( stdout_queue . queue ) , expected_output )
self . assertEqual ( self . gsutil . history , expected_calls )
self . assertEqual ( list ( self . ret_codes . queue ) , expected_ret_codes )
self . assertTrue ( os . path . exists ( output_dirname ) )
self . assertTrue ( os . path . exists ( extracted_filename ) )
def test_download_worker_skips_not_found_file ( self ) :
def test_download_worker_skips_not_found_file ( self ) :
sha1_hash = ' 7871c8e24da15bad8b0be2c36edc9dc77e37727f '
sha1_hash = ' 7871c8e24da15bad8b0be2c36edc9dc77e37727f '
input_filename = ' %s / %s ' % ( self . base_url , sha1_hash )
input_filename = ' %s / %s ' % ( self . base_url , sha1_hash )