def testLoadFamilies(self): """ Test that the loadFamilies function raises the correct exceptions """ path = os.path.join(settings['database.directory'],'kinetics','families') database = KineticsDatabase() with self.assertRaises(DatabaseError): database.loadFamilies(path, families='random') with self.assertRaises(DatabaseError): database.loadFamilies(path, families=['!H_Abstraction','Disproportionation']) with self.assertRaises(DatabaseError): database.loadFamilies(path, families=['fake_family']) with self.assertRaises(DatabaseError): database.loadFamilies(path, families=[])
class TestFamily(unittest.TestCase): def setUp(self): """ A function run before each unit test in this class. """ # Set up a dummy database self.database = KineticsDatabase() self.database.loadFamilies(os.path.join( settings['test_data.directory'], 'testing_database/kinetics/families'), families=['intra_H_migration']) self.family = self.database.families['intra_H_migration'] def testGetBackboneRoots(self): """ Test the getBackboneRoots() function """ backbones = self.family.getBackboneRoots() self.assertEquals(backbones[0].label, "RnH") def testGetEndRoots(self): """ Test the getEndRoots() function """ ends = self.family.getEndRoots() self.assertEquals(len(ends), 2) self.assertIn(self.family.groups.entries["Y_rad_out"], ends) self.assertIn(self.family.groups.entries["XH_out"], ends) def testGetTopLevelGroups(self): """ Test the getTopLevelGroups() function """ topGroups = self.family.getTopLevelGroups( self.family.groups.entries["RnH"]) self.assertEquals(len(topGroups), 2) self.assertIn(self.family.groups.entries["R5Hall"], topGroups) self.assertIn(self.family.groups.entries["R6Hall"], topGroups)
class TestFamily(unittest.TestCase): def setUp(self): """ A function run before each unit test in this class. """ # Set up a dummy database dir_path = os.path.dirname(os.path.realpath(__file__)) self.database = KineticsDatabase() self.database.loadFamilies(os.path.join(dir_path,"family_test_data"), families=['intra_H_migration']) self.family = self.database.families['intra_H_migration'] def testGetBackboneRoots(self): """ Test the getBackboneRoots() function """ backbones = self.family.getBackboneRoots() self.assertEquals(backbones[0].label, "RnH") def testGetEndRoots(self): """ Test the getEndRoots() function """ ends = self.family.getEndRoots() self.assertEquals(len(ends), 2) self.assertIn(self.family.groups.entries["Y_rad_out"], ends) self.assertIn(self.family.groups.entries["XH_out"], ends) def testGetTopLevelGroups(self): """ Test the getTopLevelGroups() function """ topGroups = self.family.getTopLevelGroups(self.family.groups.entries["RnH"]) self.assertEquals(len(topGroups), 2) self.assertIn(self.family.groups.entries["R5Hall"], topGroups) self.assertIn(self.family.groups.entries["R6Hall"], topGroups)
def test_load_families_incorrect(self): """Test invalid methods for loading kinetics families""" path = os.path.join(settings['test_data.directory'], 'testing_database', 'kinetics', 'families') database = KineticsDatabase() database.loadRecommendedFamiliesList(os.path.join(path, 'recommended.py')) with self.assertRaises(DatabaseError): database.loadFamilies(path, families='random') with self.assertRaises(DatabaseError): database.loadFamilies(path, families=['!H_Abstraction','Disproportionation']) with self.assertRaises(DatabaseError): database.loadFamilies(path, families=['fake_family'])
def test_load_families_correct(self): """Test valid methods for loading kinetics families.""" path = os.path.join(settings['test_data.directory'], 'testing_database', 'kinetics', 'families') database = KineticsDatabase() database.loadRecommendedFamiliesList( os.path.join(path, 'recommended.py')) try: database.loadFamilies(path, families=[]) except DatabaseError: self.fail("Unable to load families using list []") try: database.loadFamilies(path, families='none') except DatabaseError: self.fail("Unable to load families using keyword 'none'") try: database.loadFamilies(path, families='default') except DatabaseError: self.fail("Unable to load families using keyword 'default'") try: database.loadFamilies(path, families=['default', 'pah']) except DatabaseError: self.fail("Unable to load families using list ['default', 'pah']") try: database.loadFamilies(path, families=['R_Addition_MultipleBond']) except DatabaseError: self.fail( "Unable to load families using list ['R_Addition_MultipleBond']" ) try: database.loadFamilies( path, families=['!H_Abstraction', '!Disproportionation']) except DatabaseError: self.fail( "Unable to load families using list ['!H_Abstraction', '!Disproportionation']" ) try: database.loadFamilies(path, families='!pah') except DatabaseError: self.fail("Unable to load families using keyword '!pah'") try: database.loadFamilies(path, families=['H_Abstraction', 'pah']) except DatabaseError: self.fail( "Unable to load families using list ['H_Abstraction', 'pah']")
def test_load_families_correct(self): """Test valid methods for loading kinetics families.""" path = os.path.join(settings['test_data.directory'], 'testing_database', 'kinetics', 'families') database = KineticsDatabase() database.loadRecommendedFamiliesList(os.path.join(path, 'recommended.py')) try: database.loadFamilies(path, families=[]) except DatabaseError: self.fail("Unable to load families using list []") try: database.loadFamilies(path, families='none') except DatabaseError: self.fail("Unable to load families using keyword 'none'") try: database.loadFamilies(path, families='default') except DatabaseError: self.fail("Unable to load families using keyword 'default'") try: database.loadFamilies(path, families=['default', 'pah']) except DatabaseError: self.fail("Unable to load families using list ['default', 'pah']") try: database.loadFamilies(path, families=['R_Addition_MultipleBond']) except DatabaseError: self.fail("Unable to load families using list ['R_Addition_MultipleBond']") try: database.loadFamilies(path, families=['!H_Abstraction', '!Disproportionation']) except DatabaseError: self.fail("Unable to load families using list ['!H_Abstraction', '!Disproportionation']") try: database.loadFamilies(path, families='!pah') except DatabaseError: self.fail("Unable to load families using keyword '!pah'") try: database.loadFamilies(path, families=['H_Abstraction', 'pah']) except DatabaseError: self.fail("Unable to load families using list ['H_Abstraction', 'pah']")