Example #1
0
    def add(self, obj):
        logger.debug("adding object {0}".format(obj.__dict__))
        classpath = utils.get_classpath(obj)
        outcasts = self._check_if_obj_has_not_primitive_fields(obj)
        for outcast in outcasts:
            # we need to add an id for this field, and put it on the corresponding object.
            r = random.randint(0, sys.maxint)
            obj.__dict__[outcast].__dict__['jsondb_id'] = r
            self.add(obj.__dict__[outcast])
            obj.__dict__[outcast] = "<jsondb_id:({0};{1})>".format(utils.get_classpath(obj.__dict__[outcast]).replace(os.path.sep, '.'), r)

        if(classpath.replace(os.path.sep, '.') not in self.tables):
            self.tables.update({classpath.replace(os.path.sep, '.'): []})
        self.tables[classpath.replace(os.path.sep, '.')].append(obj.__dict__)
        logger.debug(self.tables)
        self.save_table(utils.get_table_name(self.dbpath, obj))
Example #2
0
 def test_obj_path(self):
     p = utils.get_table_name('db', datetime.datetime.now())
     self.assertEquals(
         p, os.path.sep.join(('db', 'datetime', 'datetime')) + ".json")