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))
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")