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']})
def GET(self, *args, **kwargs): init_model() s = Session() q = s.query(self.Model) for p in self.params: try: q = q.filter(getattr(self.Model, p) == kwargs[p]) except KeyError: raise cp.HTTPError(400, 'Bad request: %s not specified' % p) items = q.order_by(self.Model.nazwa).all() result = [{'id': i.id, 'nazwa': i.nazwa} for i in items] cp.response.headers['Content-Type'] = 'application/json' return json.dumps(result)