Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)
Esempio n. 5
0
    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()))
Esempio n. 6
0
    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])