@@ -1856,17 +1856,25 @@ def test_collect_exts_file_info(self):
18561856 toy_sources = os .path .join (testdir , 'sandbox' , 'sources' , 'toy' )
18571857 toy_ext_sources = os .path .join (toy_sources , 'extensions' )
18581858 toy_ec_file = os .path .join (testdir , 'easyconfigs' , 'test_ecs' , 't' , 'toy' , 'toy-0.0-gompi-2018a-test.eb' )
1859- toy_ec = process_easyconfig (toy_ec_file )[0 ]
1859+
1860+ test_ec = os .path .join (self .test_prefix , 'test.eb' )
1861+ new_ext_txt = "('baz', '0.0', {'nosource': True})," # With nosource option
1862+ new_ext_txt += "('barbar', '0.0', {'sources': [SOURCE_TAR_GZ]})," # With sources containing a list
1863+ test_ectxt = re .sub (r'\(name, version' , new_ext_txt + r"\g<0>" , read_file (toy_ec_file ))
1864+ write_file (test_ec , test_ectxt )
1865+
1866+ toy_ec = process_easyconfig (test_ec )[0 ]
18601867 toy_eb = EasyBlock (toy_ec ['ec' ])
18611868
18621869 exts_file_info = toy_eb .collect_exts_file_info ()
18631870
18641871 self .assertIsInstance (exts_file_info , list )
1865- self .assertEqual (len (exts_file_info ), 4 )
1872+ self .assertEqual (len (exts_file_info ), 6 )
18661873
18671874 self .assertEqual (exts_file_info [0 ], {'name' : 'ulimit' })
18681875
18691876 self .assertEqual (exts_file_info [1 ]['name' ], 'bar' )
1877+ self .assertEqual (exts_file_info [1 ]['sources' ], ['bar-0.0.tar.gz' ])
18701878 self .assertEqual (exts_file_info [1 ]['src' ], os .path .join (toy_ext_sources , 'bar-0.0.tar.gz' ))
18711879 bar_patch1 = 'bar-0.0_fix-silly-typo-in-printf-statement.patch'
18721880 self .assertEqual (exts_file_info [1 ]['patches' ][0 ]['name' ], bar_patch1 )
@@ -1876,36 +1884,63 @@ def test_collect_exts_file_info(self):
18761884 self .assertEqual (exts_file_info [1 ]['patches' ][1 ]['path' ], os .path .join (toy_ext_sources , bar_patch2 ))
18771885
18781886 self .assertEqual (exts_file_info [2 ]['name' ], 'barbar' )
1887+ self .assertEqual (exts_file_info [2 ]['sources' ], ['barbar-1.2.tar.gz' ])
18791888 self .assertEqual (exts_file_info [2 ]['src' ], os .path .join (toy_ext_sources , 'barbar-1.2.tar.gz' ))
18801889 self .assertNotIn ('patches' , exts_file_info [2 ])
18811890
1882- self .assertEqual (exts_file_info [3 ]['name' ], 'toy' )
1883- self .assertEqual (exts_file_info [3 ]['src' ], os .path .join (toy_sources , 'toy-0.0.tar.gz' ))
1891+ self .assertEqual (exts_file_info [3 ]['name' ], 'baz' )
1892+ self .assertNotIn ('sources' , exts_file_info [3 ])
1893+ self .assertNotIn ('sources' , exts_file_info [3 ]['options' ])
1894+ self .assertNotIn ('src' , exts_file_info [3 ])
18841895 self .assertNotIn ('patches' , exts_file_info [3 ])
18851896
1897+ self .assertEqual (exts_file_info [4 ]['name' ], 'barbar' )
1898+ self .assertEqual (exts_file_info [4 ]['sources' ], ['barbar-0.0.tar.gz' ])
1899+ self .assertEqual (exts_file_info [4 ]['src' ], os .path .join (toy_ext_sources , 'barbar-0.0.tar.gz' ))
1900+ self .assertNotIn ('patches' , exts_file_info [4 ])
1901+
1902+ self .assertEqual (exts_file_info [5 ]['name' ], 'toy' )
1903+ self .assertEqual (exts_file_info [5 ]['sources' ], ['toy-0.0.tar.gz' ])
1904+ self .assertEqual (exts_file_info [5 ]['src' ], os .path .join (toy_sources , 'toy-0.0.tar.gz' ))
1905+ self .assertNotIn ('patches' , exts_file_info [5 ])
1906+
18861907 # location of files is missing when fetch_files is set to False
18871908 exts_file_info = toy_eb .collect_exts_file_info (fetch_files = False , verify_checksums = False )
18881909
18891910 self .assertIsInstance (exts_file_info , list )
1890- self .assertEqual (len (exts_file_info ), 4 )
1911+ self .assertEqual (len (exts_file_info ), 6 )
18911912
18921913 self .assertEqual (exts_file_info [0 ], {'name' : 'ulimit' })
18931914
18941915 self .assertEqual (exts_file_info [1 ]['name' ], 'bar' )
1916+ self .assertEqual (exts_file_info [1 ]['sources' ], ['bar-0.0.tar.gz' ])
18951917 self .assertNotIn ('src' , exts_file_info [1 ])
18961918 self .assertEqual (exts_file_info [1 ]['patches' ][0 ]['name' ], bar_patch1 )
18971919 self .assertNotIn ('path' , exts_file_info [1 ]['patches' ][0 ])
18981920 self .assertEqual (exts_file_info [1 ]['patches' ][1 ]['name' ], bar_patch2 )
18991921 self .assertNotIn ('path' , exts_file_info [1 ]['patches' ][1 ])
19001922
19011923 self .assertEqual (exts_file_info [2 ]['name' ], 'barbar' )
1924+ self .assertEqual (exts_file_info [2 ]['sources' ], ['barbar-1.2.tar.gz' ])
19021925 self .assertNotIn ('src' , exts_file_info [2 ])
19031926 self .assertNotIn ('patches' , exts_file_info [2 ])
19041927
1905- self .assertEqual (exts_file_info [3 ]['name' ], 'toy' )
1928+ self .assertEqual (exts_file_info [3 ]['name' ], 'baz' )
1929+ self .assertNotIn ('sources' , exts_file_info [3 ])
1930+ self .assertNotIn ('sources' , exts_file_info [3 ]['options' ])
19061931 self .assertNotIn ('src' , exts_file_info [3 ])
19071932 self .assertNotIn ('patches' , exts_file_info [3 ])
19081933
1934+ self .assertEqual (exts_file_info [4 ]['name' ], 'barbar' )
1935+ self .assertEqual (exts_file_info [4 ]['sources' ], ['barbar-0.0.tar.gz' ])
1936+ self .assertNotIn ('src' , exts_file_info [4 ])
1937+ self .assertNotIn ('patches' , exts_file_info [4 ])
1938+
1939+ self .assertEqual (exts_file_info [5 ]['name' ], 'toy' )
1940+ self .assertEqual (exts_file_info [5 ]['sources' ], ['toy-0.0.tar.gz' ])
1941+ self .assertNotIn ('src' , exts_file_info [5 ])
1942+ self .assertNotIn ('patches' , exts_file_info [5 ])
1943+
19091944 error_msg = "Can't verify checksums for extension files if they are not being fetched"
19101945 self .assertErrorRegex (EasyBuildError , error_msg , toy_eb .collect_exts_file_info , fetch_files = False )
19111946
@@ -2619,14 +2654,11 @@ def run_checks():
26192654
26202655 # full check also catches checksum issues with extensions
26212656 res = eb .check_checksums ()
2622- self .assertEqual (len (res ), 4 )
2657+ self .assertEqual (len (res ), 3 )
26232658 run_checks ()
26242659
2625- idx = 2
2626- for ext in ['bar' , 'barbar' ]:
2627- expected = "Checksums missing for one or more sources/patches of extension %s in " % ext
2628- self .assertTrue (res [idx ].startswith (expected ))
2629- idx += 1
2660+ expected = "Checksums missing for one or more sources/patches of extension bar in "
2661+ self .assertTrue (res [2 ].startswith (expected ))
26302662
26312663 # check whether tuple of alternative SHA256 checksums is correctly recognized
26322664 toy_ec = os .path .join (testdir , 'easyconfigs' , 'test_ecs' , 't' , 'toy' , 'toy-0.0.eb' )
0 commit comments