diff --git a/interfaces/cython/cantera/ck2cti.py b/interfaces/cython/cantera/ck2cti.py index 8cda51c82..33085eaef 100644 --- a/interfaces/cython/cantera/ck2cti.py +++ b/interfaces/cython/cantera/ck2cti.py @@ -1908,6 +1908,9 @@ class Parser(object): else: transportLines.append(line) line, comment = readline() + elif line.strip(): + raise InputParseError('Section starts with unrecognized keyword.' + '\n"""\n{0}\n"""'.format(line.rstrip())) if advance: line, comment = readline() diff --git a/interfaces/cython/cantera/test/test_convert.py b/interfaces/cython/cantera/test/test_convert.py index de8aa81f7..eefcd47c3 100644 --- a/interfaces/cython/cantera/test/test_convert.py +++ b/interfaces/cython/cantera/test/test_convert.py @@ -195,6 +195,13 @@ class chemkinConverterTest(utilities.CanteraTest): self.assertEqual(gas.n_species, 3) self.assertEqual(gas.n_reactions, 2) + def test_unrecognized_section(self): + with self.assertRaisesRegex(ck2cti.InputParseError, 'SPAM'): + convertMech(pjoin(self.test_data_dir, 'unrecognized-section.inp'), + thermoFile=pjoin(self.test_data_dir, 'dummy-thermo.dat'), + outName=pjoin(self.test_work_dir, 'unrecognized-section.cti'), + quiet=True, permissive=True) + def test_nasa9(self): convertMech(pjoin(self.test_data_dir, 'nasa9-test.inp'), thermoFile=pjoin(self.test_data_dir, 'nasa9-test-therm.dat'), diff --git a/test/data/unrecognized-section.inp b/test/data/unrecognized-section.inp new file mode 100644 index 000000000..47972d47c --- /dev/null +++ b/test/data/unrecognized-section.inp @@ -0,0 +1,14 @@ +Elements +H C + +SPECIES +R1A R1B H P1 +END + +SPAM +R1A + R1B = H + P1 1.2345e12 1.0 200.0 +END + +reactions cal/mol +R1A + R1B = H + P1 1.2345e12 1.0 200.0 +R1A + R1A = H + P1 5.4321e10 1.0 500.0