@@ -2353,17 +2353,25 @@ def test_collect_exts_file_info(self):
23532353 toy_sources = os .path .join (testdir , 'sandbox' , 'sources' , 'toy' )
23542354 toy_ext_sources = os .path .join (toy_sources , 'extensions' )
23552355 toy_ec_file = os .path .join (testdir , 'easyconfigs' , 'test_ecs' , 't' , 'toy' , 'toy-0.0-gompi-2018a-test.eb' )
2356- toy_ec = process_easyconfig (toy_ec_file )[0 ]
2356+
2357+ test_ec = os .path .join (self .test_prefix , 'test.eb' )
2358+ new_ext_txt = "('baz', '0.0', {'nosource': True})," # With nosource option
2359+ new_ext_txt += "('barbar', '0.0', {'sources': [SOURCE_TAR_GZ]})," # With sources containing a list
2360+ test_ectxt = re .sub (r'\(name, version' , new_ext_txt + r"\g<0>" , read_file (toy_ec_file ))
2361+ write_file (test_ec , test_ectxt )
2362+
2363+ toy_ec = process_easyconfig (test_ec )[0 ]
23572364 toy_eb = EasyBlock (toy_ec ['ec' ])
23582365
23592366 exts_file_info = toy_eb .collect_exts_file_info ()
23602367
23612368 self .assertIsInstance (exts_file_info , list )
2362- self .assertEqual (len (exts_file_info ), 4 )
2369+ self .assertEqual (len (exts_file_info ), 6 )
23632370
23642371 self .assertEqual (exts_file_info [0 ], {'name' : 'ulimit' })
23652372
23662373 self .assertEqual (exts_file_info [1 ]['name' ], 'bar' )
2374+ self .assertEqual (exts_file_info [1 ]['sources' ], ['bar-0.0.tar.gz' ])
23672375 self .assertEqual (exts_file_info [1 ]['src' ], os .path .join (toy_ext_sources , 'bar-0.0.tar.gz' ))
23682376 bar_patch1 = 'bar-0.0_fix-silly-typo-in-printf-statement.patch'
23692377 self .assertEqual (exts_file_info [1 ]['patches' ][0 ]['name' ], bar_patch1 )
@@ -2374,38 +2382,65 @@ def test_collect_exts_file_info(self):
23742382 self .assertEqual (len (exts_file_info [1 ]['checksums' ]), 1 )
23752383
23762384 self .assertEqual (exts_file_info [2 ]['name' ], 'barbar' )
2385+ self .assertEqual (exts_file_info [2 ]['sources' ], ['barbar-1.2.tar.gz' ])
23772386 self .assertEqual (exts_file_info [2 ]['src' ], os .path .join (toy_ext_sources , 'barbar-1.2.tar.gz' ))
23782387 self .assertNotIn ('patches' , exts_file_info [2 ])
23792388 self .assertEqual (len (exts_file_info [2 ]['checksums' ]), 0 )
23802389
2381- self .assertEqual (exts_file_info [3 ]['name' ], 'toy' )
2382- self .assertEqual (exts_file_info [3 ]['src' ], os .path .join (toy_sources , 'toy-0.0.tar.gz' ))
2390+ self .assertEqual (exts_file_info [3 ]['name' ], 'baz' )
2391+ self .assertNotIn ('sources' , exts_file_info [3 ])
2392+ self .assertNotIn ('sources' , exts_file_info [3 ]['options' ])
2393+ self .assertNotIn ('src' , exts_file_info [3 ])
23832394 self .assertNotIn ('patches' , exts_file_info [3 ])
23842395 self .assertEqual (len (exts_file_info [3 ]['checksums' ]), 1 )
23852396
2397+ self .assertEqual (exts_file_info [4 ]['name' ], 'barbar' )
2398+ self .assertEqual (exts_file_info [4 ]['sources' ], ['barbar-0.0.tar.gz' ])
2399+ self .assertEqual (exts_file_info [4 ]['src' ], os .path .join (toy_ext_sources , 'barbar-0.0.tar.gz' ))
2400+ self .assertNotIn ('patches' , exts_file_info [4 ])
2401+
2402+ self .assertEqual (exts_file_info [5 ]['name' ], 'toy' )
2403+ self .assertEqual (exts_file_info [5 ]['sources' ], ['toy-0.0.tar.gz' ])
2404+ self .assertEqual (exts_file_info [5 ]['src' ], os .path .join (toy_sources , 'toy-0.0.tar.gz' ))
2405+ self .assertNotIn ('patches' , exts_file_info [5 ])
2406+
23862407 # location of files is missing when fetch_files is set to False
23872408 exts_file_info = toy_eb .collect_exts_file_info (fetch_files = False , verify_checksums = False )
23882409
23892410 self .assertIsInstance (exts_file_info , list )
2390- self .assertEqual (len (exts_file_info ), 4 )
2411+ self .assertEqual (len (exts_file_info ), 6 )
23912412
23922413 self .assertEqual (exts_file_info [0 ], {'name' : 'ulimit' })
23932414
23942415 self .assertEqual (exts_file_info [1 ]['name' ], 'bar' )
2416+ self .assertEqual (exts_file_info [1 ]['sources' ], ['bar-0.0.tar.gz' ])
23952417 self .assertNotIn ('src' , exts_file_info [1 ])
23962418 self .assertEqual (exts_file_info [1 ]['patches' ][0 ]['name' ], bar_patch1 )
23972419 self .assertNotIn ('path' , exts_file_info [1 ]['patches' ][0 ])
23982420 self .assertEqual (exts_file_info [1 ]['patches' ][1 ]['name' ], bar_patch2 )
23992421 self .assertNotIn ('path' , exts_file_info [1 ]['patches' ][1 ])
24002422
24012423 self .assertEqual (exts_file_info [2 ]['name' ], 'barbar' )
2424+ self .assertEqual (exts_file_info [2 ]['sources' ], ['barbar-1.2.tar.gz' ])
24022425 self .assertNotIn ('src' , exts_file_info [2 ])
24032426 self .assertNotIn ('patches' , exts_file_info [2 ])
24042427
2405- self .assertEqual (exts_file_info [3 ]['name' ], 'toy' )
2428+ self .assertEqual (exts_file_info [3 ]['name' ], 'baz' )
2429+ self .assertNotIn ('sources' , exts_file_info [3 ])
2430+ self .assertNotIn ('sources' , exts_file_info [3 ]['options' ])
24062431 self .assertNotIn ('src' , exts_file_info [3 ])
24072432 self .assertNotIn ('patches' , exts_file_info [3 ])
24082433
2434+ self .assertEqual (exts_file_info [4 ]['name' ], 'barbar' )
2435+ self .assertEqual (exts_file_info [4 ]['sources' ], ['barbar-0.0.tar.gz' ])
2436+ self .assertNotIn ('src' , exts_file_info [4 ])
2437+ self .assertNotIn ('patches' , exts_file_info [4 ])
2438+
2439+ self .assertEqual (exts_file_info [5 ]['name' ], 'toy' )
2440+ self .assertEqual (exts_file_info [5 ]['sources' ], ['toy-0.0.tar.gz' ])
2441+ self .assertNotIn ('src' , exts_file_info [5 ])
2442+ self .assertNotIn ('patches' , exts_file_info [5 ])
2443+
24092444 error_msg = "Can't verify checksums for extension files if they are not being fetched"
24102445 self .assertErrorRegex (EasyBuildError , error_msg , toy_eb .collect_exts_file_info , fetch_files = False )
24112446
0 commit comments