예제 #1
0
class TestPedidoGatewayTestCase(object):
    def setup(self):
        configurations = load_config_file()
        db_manager = DBManager(configurations.db_test.connection)
        db_manager.setup()
        self.pedido_gateway = PedidoGateway(db_manager.session)

    def teardown(self):
        self.pedido_gateway.delete_all()

    def _cria_um_pedido(self):
        return self.pedido_gateway.create(data=datetime.now(), cliente_id=1, valor=1.0)
예제 #2
0
    def on_post(self, req, resp):
        pedido_gateway = PedidoGateway(self.db.session)

        body = req.bounded_stream.read().decode()
        if not body:
            resp.status = falcon.HTTP_PRECONDITION_FAILED
            resp.body = json.dumps({"erro": "POST precisa conter um body."})
            return resp

        raw_json = json.loads(body)
        data = raw_json["data"]
        cliente_id = raw_json["cliente_id"]
        valor = raw_json["valor"]
        pedido_gateway.create(data, cliente_id, valor)
        resp.status = falcon.HTTP_201
예제 #3
0
    def on_get(self, req, resp, pedido_id=None):
        pedido_gateway = PedidoGateway(self.db.session)

        if pedido_id:
            try:
                pedidos = pedido_gateway.get_one(int(pedido_id))
                content = pedidos.as_dict
            except PedidoNotFoundException as exc:
                resp.status = falcon.HTTP_404
                resp.body = json.dumps({"erro": str(exc)})
                return resp
        else:
            pedidos = pedido_gateway.get_all()
            content = [pedido.as_dict for pedido in pedidos]

        resp.status = falcon.HTTP_200
        resp.body = json.dumps(content)
예제 #4
0
    def on_put(self, req, resp, pedido_id=None):
        pedido_gateway = PedidoGateway(self.db.session)

        if not pedido_id:
            resp.status = falcon.HTTP_412
            resp.body = json.dumps(
                {"erro": "Metodo PUT requer o campo 'pedido_id' na URL"})
            return resp

        resp.status = falcon.HTTP_200
        raw_json = json.loads(req.bounded_stream.read().decode())
        data = raw_json.get("data", None)
        cliente_id = raw_json.get("cliente_id", None)
        valor = raw_json.get("valor", None)
        try:
            pedido_gateway.update(pedido_id, data, cliente_id, valor)
        except PedidoNotFoundException as exc:
            resp.status = falcon.HTTP_404
            resp.body = json.dumps({"erro": str(exc)})
            return resp
예제 #5
0
 def setup(self):
     configurations = load_config_file()
     db_manager = DBManager(configurations.db_test.connection)
     db_manager.setup()
     self.pedido_gateway = PedidoGateway(db_manager.session)
예제 #6
0
 def _busca_um_pedido(self, pedido_id):
     return PedidoGateway(self.session).get_one(pedido_id)
예제 #7
0
 def _gera_um_pedido(self, data, cliente_id, valor):
     return PedidoGateway(self.session).create(data=data,
                                               cliente_id=cliente_id,
                                               valor=valor)
예제 #8
0
 def teardown(self):
     ClienteGateway(self.session).delete_all()
     PedidoGateway(self.session).delete_all()