def test_init_exisiting(self): name = 'm' + str(uuid.uuid4().get_hex()[0:6]) # Registering the same object twice param1 = tools.ParameterObj(name) param2 = tools.ParameterObj(name) self.assertEqual(param1, sys.modules[name]) self.assertEqual(param2, sys.modules[name]) self.assertEqual(param1, param2)
def test_update(self): name = 'm' + str(uuid.uuid4().get_hex()[0:6]) param = tools.ParameterObj(name) keys = ['k' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] values = ['v' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] dic = dict(zip(keys, values)) param.update(dic) # Checking initial dictionary update for (k, v) in dic.iteritems(): self.assertEqual(v, param.__getattr__(k)) keys = ['k' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] values = ['v' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] new_dic = dict(zip(keys, values)) param.update(new_dic) # Checking second dictionary update for (k, v) in new_dic.iteritems(): self.assertEqual(v, param.__getattr__(k)) # Checking old dictionary items have been erased. for (k, v) in dic.iteritems(): self.assertRaises(KeyError, param.__getattr__, k)
def test_iter(self): name = 'm' + str(uuid.uuid4().get_hex()[0:6]) param = tools.ParameterObj(name) keys = ['k' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] values = ['v' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] dic = dict(zip(keys, values)) param.update(dic) for k in param: # implitely calls '__iter__' self.assertIn(k, keys)
def test_save(self): # Fill a ParamObj with a random dictionary name = 'm' + str(uuid.uuid4().get_hex()[0:6]) param = tools.ParameterObj(name) keys = ['k' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] values = ['v' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] dic = dict(zip(keys, values)) param.update(dic) # Save the object dictionary to file file_name = 'f' + str(uuid.uuid4().get_hex()[0:6]) param.save(file_name) # Read back the file from seisflows.tools.code import loadjson read_dic = loadjson(file_name) self.assertEqual(dic, read_dic) os.remove(file_name)
def test_attr(self): name = 'm' + str(uuid.uuid4().get_hex()[0:6]) param = tools.ParameterObj(name) keys = ['k' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] values = ['v' + str(uuid.uuid4().get_hex()[0:6]) for i in range(1, 10)] for k, v in zip(keys, values): param.__setattr__(k, v) self.assertEqual(param.__getattr__(k), v) # No attributes modification for k, v in zip(keys, values): self.assertRaises(Exception, param.__setattr__, k, v) # No attributes deletion for k, v in zip(keys, values): self.assertRaises(Exception, param.__delattr__, k) # Raise an exception for an unexisting key self.assertRaises(KeyError, param.__getattr__, str(uuid.uuid4().get_hex()))
def test_init_non_exisiting(self): name = 'm' + str(uuid.uuid4().get_hex()[0:6]) param = tools.ParameterObj(name) self.assertEqual(param, sys.modules[name])