def testMAEsaveLoadSessions(self): cmd.load(self.datafile('1d_smiles.mae'), '1d_smiles', object_props='*') allpropdata = {} objs = cmd.get_object_list() for obj in objs: props = cmd.get_property_list(obj) allpropdata[obj] = {} for prop in props: allpropdata[obj][prop] = cmd.get_property(prop, obj) with testing.mktemp('.pse') as psefilename: cmd.save(psefilename) cmd.load(psefilename) # this is to fail the test on purpose # cmd.set_property('i_m_ct_format', 3, '1d_smiles.mol_13') objs = cmd.get_object_list() for obj in objs: props = cmd.get_property_list(obj) # test to make sure there are no extra properties or not enough properties self.assertEqual(set(props), set(allpropdata[obj].keys())) # test to make sure all property values are the same for prop in props: try: self.assertTrue(allpropdata[obj][prop] == cmd.get_property(prop, obj)) except: self.fail('properties are not the same: obj=%s prop=%s' % (obj, prop))
def testDel(self): cmd.pseudoatom('m1') stored.keys = [] cmd.alter('all', 'p.foo = 123') cmd.alter('all', 'p.bar = "Hello World"') cmd.iterate('all', 'stored.keys = list(sorted(p.all))') self.assertEqual(stored.keys, ['bar', 'foo']) stored.keys = [] cmd.alter('all', "del p['foo']") cmd.iterate('all', 'stored.keys = list(sorted(p.all))') self.assertEqual(stored.keys, ['bar']) stored.keys = [] cmd.alter('all', "p.bar = None") cmd.iterate('all', 'stored.keys = list(sorted(p.all))') self.assertEqual(stored.keys, []) # object-level cmd.set_property('bla', 456, 'm1') stored.keys = cmd.get_property_list('m1') self.assertEqual(stored.keys, ['bla']) cmd.set_property('bla', None, 'm1') stored.keys = cmd.get_property_list('m1') self.assertEqual(stored.keys, [])
def testCopyObjectProperties(self): cmd.load(self.datafile('1molecule.mae'), 'test', object_props='*') objs = cmd.get_object_list() for obj in objs: obj_copy = '%s_copy' % obj cmd.create(obj_copy, obj, copy_properties=True) props1 = cmd.get_property_list(obj) props2 = cmd.get_property_list(obj_copy) self.assertEqual(set(props1), set(props2)) for prop in props1: prop1 = cmd.get_property(prop, obj) prop2 = cmd.get_property(prop, obj_copy) self.assertEqual(prop1, prop2)
def testMAEloadSomePropertiesEmptyList(self): props = [] cmd.load(self.datafile('1d_smiles.mae'), '1d_smiles', object_props=' '.join(props)) objs = cmd.get_object_list() for obj in objs: allprops = cmd.get_property_list(obj) self.assertIsNone(allprops)
def testMAEloadSomePropertiesDontExist(self): props = ['s_knime_origin_file_name', 's_knime_origin_hostname', 'dontexist'] cmd.load(self.datafile('1d_smiles.mae'), '1d_smiles', object_props=' '.join(props)) objs = cmd.get_object_list() for obj in objs: allprops = cmd.get_property_list(obj) self.assertIsNotNone(allprops)
def testMAEloadSomeProperties(self): props = ['s_knime_origin_file_name', 's_knime_origin_hostname'] cmd.load(self.datafile('1d_smiles.mae'), '1d_smiles', object_props=' '.join(props)) objs = cmd.get_object_list() for obj in objs: allprops = cmd.get_property_list(obj) self.assertEqual(len(props), len(allprops))
def testMAEchempy(self, molfilename): cmd.load(self.datafile(molfilename), 'test', object_props='*', atom_props='*') objs = cmd.get_object_list() for obj in objs: idxToVal = {} natoms = cmd.count_atoms(obj) for i in range(natoms): idxToVal[i+1] = i*10 cmd.set_atom_property('test_prop', i*10, "index %d and %s" % (i+1, obj)) model = cmd.get_model(obj) # test to make sure the properties that exist are the same prop_list= cmd.get_property_list(obj) mol_prop_list = [x[0] for x in model.molecule_properties] self.assertEqual(set(prop_list), set(mol_prop_list)) # need to test whether the values are the same for prop, val in model.molecule_properties: propval = cmd.get_property(prop, obj) self.assertEqual(propval, val) self.assertEqual(natoms, len(model.atom)) # need to test values of all atom properties, including the ones that were set above stored.prop_lookup = {} cmd.iterate(obj, "stored.prop_lookup[index-1] = properties.all") idx = 0 for at in model.atom: for prop in at.atom_properties.keys(): val = at.atom_properties[prop] self.assertEqual(val, stored.prop_lookup[idx][prop]) idx += 1
def testLoadNoProperties(self, molfilename): cmd.set('load_object_props_default', '') cmd.load(self.datafile(molfilename), 'test') objs = cmd.get_object_list() for obj in objs: prop_list= cmd.get_property_list(obj) self.assertEquals(prop_list, None)
def testMAEchempy(self): cmd.load(self.datafile('1d_smiles.mae'), '1d_smiles', object_props='*') objs = cmd.get_object_list() for obj in objs: model = cmd.get_model(obj) prop_list= cmd.get_property_list(obj) mol_prop_list = [x[0] for x in model.molecule_properties] self.assertEqual(set(prop_list), set(mol_prop_list))
def testMAEchempy(self): cmd.load(self.datafile('1d_smiles.mae'), '1d_smiles', object_props='*') objs = cmd.get_object_list() for obj in objs: model = cmd.get_model(obj) prop_list= cmd.get_property_list(obj) mol_prop_list = map(lambda x: x[0], model.molecule_properties) self.assertEqual(set(prop_list), set(mol_prop_list))
def testMAEloadAllProperties(self): cmd.load(self.datafile('1d_smiles.mae'), '1d_smiles', object_props='*') objs = cmd.get_object_list() for obj in objs: props = cmd.get_property_list(obj) self.assertIsNotNone(props)
def testPdbHeader(self, load_object_props_default, object_props, truth): cmd.set('load_object_props_default', load_object_props_default) cmd.load(self.datafile('1rx1.pdb'), 'm1', object_props=object_props) self.assertEqual(truth, 'pdb_header' in (cmd.get_property_list('m1') or ()))