def load_fixtures(fixture_path): fixtures = yaml.load(open(fixture_path, 'r').read()) session = DBSession() for fixture in fixtures: model = resolve(fixture.get('class')) try: inst = model(**fixture['fields']) with transaction.manager: session.add(inst) except Exception, e: raise e
def add_resource(request, model, schema_cls): session = DBSession() try: schema = schema_cls() vals = schema.deserialize(request.json_body) ints = model(**vals) session.add(ints) session.flush() return ints except colander.Invalid, e: request.response.status = 'Bad request 400' return e.asdict()