diff --git a/armi/nuclearDataIO/tests/test_xsLibraries.py b/armi/nuclearDataIO/tests/test_xsLibraries.py index 1b65e7189..5b326d8d4 100644 --- a/armi/nuclearDataIO/tests/test_xsLibraries.py +++ b/armi/nuclearDataIO/tests/test_xsLibraries.py @@ -245,6 +245,24 @@ def test_mergeFailsWithNonIsotxsFiles(self): finally: os.remove(dummyFileName) + dummyFileName = "ISOtopics.txt" + with open(dummyFileName, "w") as file: + file.write( + "This is a file that starts with the letters 'ISO' but will" + " break the regular expression search." + ) + + try: + with mockRunLogs.BufferLog() as log: + lib = xsLibraries.IsotxsLibrary() + xsLibraries.mergeXSLibrariesInWorkingDirectory(lib) + self.assertTrue( + f"Ignoring file {dummyFileName} in the merging of ISOXX files" + in log.getStdoutValue() + ) + finally: + os.remove(dummyFileName) + def _xsLibraryAttributeHelper( self, lib, diff --git a/armi/nuclearDataIO/xsLibraries.py b/armi/nuclearDataIO/xsLibraries.py index a9fe19ca7..a634b40e1 100644 --- a/armi/nuclearDataIO/xsLibraries.py +++ b/armi/nuclearDataIO/xsLibraries.py @@ -175,9 +175,16 @@ def mergeXSLibrariesInWorkingDirectory(lib, xsLibrarySuffix="", mergeGammaLibs=F librariesToMerge = [] neutronVelocities = {} # Dictionary of neutron velocities from each ISOTXS file for xsLibFilePath in sorted(xsLibFiles): - xsID = re.search("ISO([A-Z0-9]{2})", xsLibFilePath).group( - 1 - ) # get XS ID from the cross section library name + try: + xsID = re.search("ISO([A-Z0-9]{2})", xsLibFilePath).group( + 1 + ) # get XS ID from the cross section library name + except AttributeError: + # if glob has matched something that is not actually an ISOXX file, + # the .group() call will fail + runLog.debug(f"Ignoring file {xsLibFilePath} in the merging of ISOXX files") + continue + xsFileTypes = "ISOTXS" if not mergeGammaLibs else "ISOTXS, GAMISO, and PMATRX" runLog.info( "Retrieving {} data for XS ID {}{}".format(