def POST(self, *args, **kwargs): try: inp = json.load(cp.request.body) except ValueError: raise cp.HTTPError('400', 'Malformed JSON') init_model() s = Session() try: m = self.Model.from_data(inp, s) except ValueError as e: raise cp.HTTPError(400, 'Bad input: %s' % e.args[0]) s.add(m) s.commit() return json.dumps({'id': m.id})
def kategoria_test(self): s = Session() input_data = json.dumps({'nazwa': 'Lekarstwa'}) res = self.app.post( '/kategorie', input_data, {'Content-Type': 'application/json'} ) print res kats = s.query(Kategoria).all() print kats assert len(kats) == 3 assert 'Lekarstwa' in [kat.nazwa for kat in kats] s.query(Kategoria).delete() s.commit()
def podkategoria_test(self): s = Session() kategoria_id = s.query(Kategoria).filter( Kategoria.nazwa == 'Chemia' ).one().id input_data = json.dumps({ 'nazwa': 'Kuchenna', 'kategoria_id': kategoria_id }) res = self.app.post( '/podkategorie', input_data, {'Content-Type': 'application/json'} ) print res subkats = s.query(Podkategoria).filter( Podkategoria.kategoria_id == kategoria_id ).all() assert len(subkats) == 3 assert 'Kuchenna' in [subkat.nazwa for subkat in subkats] s.query(Podkategoria).delete() s.commit()
def zakupy_test(self): s = Session() d = '2011-1-26' sklep_id = s.query(Sklep).all()[0].id produkt_ids = [pr.id for pr in s.query(Produkt).all()[0:3]] input_data = json.dumps({ 'data': d, 'sklep': sklep_id, 'zakupy': [{ 'produkt.id': prid, 'cena': 10, 'ilosc': 1 } for prid in produkt_ids] }) print input_data self.app.post( '/zakupy', input_data, {'Content-Type': 'application/json'} ) zakupy = s.query(Zakup).all() assert len(zakupy) == 7 s.query(Zakup).delete() s.commit()
def POST(self): if ('application/json' not in cp.request.headers['Content-Type']): raise cp.HTTPError('400', 'JSON needed') try: inp = json.load(cp.request.body) except ValueError: raise cp.HTTPError('400', 'Malformed JSON') init_model() s = Session() data = inp['data'] sklep_id = inp['sklep'] try: sklep = s.query(Sklep).filter(Sklep.id == sklep_id).one() except orm.exc.NoResultFound: raise cp.HTTPError('400', 'Bad shop') zakupy = [] for z in inp['zakupy']: try: produkt = s.query(Produkt).filter( Produkt.id == z['produkt-id'] ).one() except orm.exc.NoResultFound: raise cp.HTTPError('400', 'Bad product') zakupy.append(Zakup( data, sklep, produkt, to_dec(z['cena']), to_dec(z['ilosc']) )) s.commit() for z in inp['zakupy']: z['id'] = zakupy.pop(0).id cp.response.headers['Content-Type'] = 'application/json' return json.dumps({"success": True, 'message': '', 'zakupy': inp['zakupy']})