@@ -1829,17 +1829,25 @@ def test_collect_exts_file_info(self):
18291829 toy_sources = os .path .join (testdir , 'sandbox' , 'sources' , 'toy' )
18301830 toy_ext_sources = os .path .join (toy_sources , 'extensions' )
18311831 toy_ec_file = os .path .join (testdir , 'easyconfigs' , 'test_ecs' , 't' , 'toy' , 'toy-0.0-gompi-2018a-test.eb' )
1832- toy_ec = process_easyconfig (toy_ec_file )[0 ]
1832+
1833+ test_ec = os .path .join (self .test_prefix , 'test.eb' )
1834+ new_ext_txt = "('baz', '0.0', {'nosource': True})," # With nosource option
1835+ new_ext_txt += "('barbar', '0.0', {'sources': [SOURCE_TAR_GZ]})," # With sources containing a list
1836+ test_ectxt = re .sub (r'\(name, version' , new_ext_txt + r"\g<0>" , read_file (toy_ec_file ))
1837+ write_file (test_ec , test_ectxt )
1838+
1839+ toy_ec = process_easyconfig (test_ec )[0 ]
18331840 toy_eb = EasyBlock (toy_ec ['ec' ])
18341841
18351842 exts_file_info = toy_eb .collect_exts_file_info ()
18361843
18371844 self .assertIsInstance (exts_file_info , list )
1838- self .assertEqual (len (exts_file_info ), 4 )
1845+ self .assertEqual (len (exts_file_info ), 6 )
18391846
18401847 self .assertEqual (exts_file_info [0 ], {'name' : 'ulimit' })
18411848
18421849 self .assertEqual (exts_file_info [1 ]['name' ], 'bar' )
1850+ self .assertEqual (exts_file_info [1 ]['sources' ], ['bar-0.0.tar.gz' ])
18431851 self .assertEqual (exts_file_info [1 ]['src' ], os .path .join (toy_ext_sources , 'bar-0.0.tar.gz' ))
18441852 bar_patch1 = 'bar-0.0_fix-silly-typo-in-printf-statement.patch'
18451853 self .assertEqual (exts_file_info [1 ]['patches' ][0 ]['name' ], bar_patch1 )
@@ -1849,36 +1857,63 @@ def test_collect_exts_file_info(self):
18491857 self .assertEqual (exts_file_info [1 ]['patches' ][1 ]['path' ], os .path .join (toy_ext_sources , bar_patch2 ))
18501858
18511859 self .assertEqual (exts_file_info [2 ]['name' ], 'barbar' )
1860+ self .assertEqual (exts_file_info [2 ]['sources' ], ['barbar-1.2.tar.gz' ])
18521861 self .assertEqual (exts_file_info [2 ]['src' ], os .path .join (toy_ext_sources , 'barbar-1.2.tar.gz' ))
18531862 self .assertNotIn ('patches' , exts_file_info [2 ])
18541863
1855- self .assertEqual (exts_file_info [3 ]['name' ], 'toy' )
1856- self .assertEqual (exts_file_info [3 ]['src' ], os .path .join (toy_sources , 'toy-0.0.tar.gz' ))
1864+ self .assertEqual (exts_file_info [3 ]['name' ], 'baz' )
1865+ self .assertNotIn ('sources' , exts_file_info [3 ])
1866+ self .assertNotIn ('sources' , exts_file_info [3 ]['options' ])
1867+ self .assertNotIn ('src' , exts_file_info [3 ])
18571868 self .assertNotIn ('patches' , exts_file_info [3 ])
18581869
1870+ self .assertEqual (exts_file_info [4 ]['name' ], 'barbar' )
1871+ self .assertEqual (exts_file_info [4 ]['sources' ], ['barbar-0.0.tar.gz' ])
1872+ self .assertEqual (exts_file_info [4 ]['src' ], os .path .join (toy_ext_sources , 'barbar-0.0.tar.gz' ))
1873+ self .assertNotIn ('patches' , exts_file_info [4 ])
1874+
1875+ self .assertEqual (exts_file_info [5 ]['name' ], 'toy' )
1876+ self .assertEqual (exts_file_info [5 ]['sources' ], ['toy-0.0.tar.gz' ])
1877+ self .assertEqual (exts_file_info [5 ]['src' ], os .path .join (toy_sources , 'toy-0.0.tar.gz' ))
1878+ self .assertNotIn ('patches' , exts_file_info [5 ])
1879+
18591880 # location of files is missing when fetch_files is set to False
18601881 exts_file_info = toy_eb .collect_exts_file_info (fetch_files = False , verify_checksums = False )
18611882
18621883 self .assertIsInstance (exts_file_info , list )
1863- self .assertEqual (len (exts_file_info ), 4 )
1884+ self .assertEqual (len (exts_file_info ), 6 )
18641885
18651886 self .assertEqual (exts_file_info [0 ], {'name' : 'ulimit' })
18661887
18671888 self .assertEqual (exts_file_info [1 ]['name' ], 'bar' )
1889+ self .assertEqual (exts_file_info [1 ]['sources' ], ['bar-0.0.tar.gz' ])
18681890 self .assertNotIn ('src' , exts_file_info [1 ])
18691891 self .assertEqual (exts_file_info [1 ]['patches' ][0 ]['name' ], bar_patch1 )
18701892 self .assertNotIn ('path' , exts_file_info [1 ]['patches' ][0 ])
18711893 self .assertEqual (exts_file_info [1 ]['patches' ][1 ]['name' ], bar_patch2 )
18721894 self .assertNotIn ('path' , exts_file_info [1 ]['patches' ][1 ])
18731895
18741896 self .assertEqual (exts_file_info [2 ]['name' ], 'barbar' )
1897+ self .assertEqual (exts_file_info [2 ]['sources' ], ['barbar-1.2.tar.gz' ])
18751898 self .assertNotIn ('src' , exts_file_info [2 ])
18761899 self .assertNotIn ('patches' , exts_file_info [2 ])
18771900
1878- self .assertEqual (exts_file_info [3 ]['name' ], 'toy' )
1901+ self .assertEqual (exts_file_info [3 ]['name' ], 'baz' )
1902+ self .assertNotIn ('sources' , exts_file_info [3 ])
1903+ self .assertNotIn ('sources' , exts_file_info [3 ]['options' ])
18791904 self .assertNotIn ('src' , exts_file_info [3 ])
18801905 self .assertNotIn ('patches' , exts_file_info [3 ])
18811906
1907+ self .assertEqual (exts_file_info [4 ]['name' ], 'barbar' )
1908+ self .assertEqual (exts_file_info [4 ]['sources' ], ['barbar-0.0.tar.gz' ])
1909+ self .assertNotIn ('src' , exts_file_info [4 ])
1910+ self .assertNotIn ('patches' , exts_file_info [4 ])
1911+
1912+ self .assertEqual (exts_file_info [5 ]['name' ], 'toy' )
1913+ self .assertEqual (exts_file_info [5 ]['sources' ], ['toy-0.0.tar.gz' ])
1914+ self .assertNotIn ('src' , exts_file_info [5 ])
1915+ self .assertNotIn ('patches' , exts_file_info [5 ])
1916+
18821917 error_msg = "Can't verify checksums for extension files if they are not being fetched"
18831918 self .assertErrorRegex (EasyBuildError , error_msg , toy_eb .collect_exts_file_info , fetch_files = False )
18841919
@@ -2569,14 +2604,11 @@ def run_checks():
25692604
25702605 # full check also catches checksum issues with extensions
25712606 res = eb .check_checksums ()
2572- self .assertEqual (len (res ), 4 )
2607+ self .assertEqual (len (res ), 3 )
25732608 run_checks ()
25742609
2575- idx = 2
2576- for ext in ['bar' , 'barbar' ]:
2577- expected = "Checksums missing for one or more sources/patches of extension %s in " % ext
2578- self .assertTrue (res [idx ].startswith (expected ))
2579- idx += 1
2610+ expected = "Checksums missing for one or more sources/patches of extension bar in "
2611+ self .assertTrue (res [2 ].startswith (expected ))
25802612
25812613 # check whether tuple of alternative SHA256 checksums is correctly recognized
25822614 toy_ec = os .path .join (testdir , 'easyconfigs' , 'test_ecs' , 't' , 'toy' , 'toy-0.0.eb' )
0 commit comments