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)
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
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)
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
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 _busca_um_pedido(self, pedido_id): return PedidoGateway(self.session).get_one(pedido_id)
def _gera_um_pedido(self, data, cliente_id, valor): return PedidoGateway(self.session).create(data=data, cliente_id=cliente_id, valor=valor)
def teardown(self): ClienteGateway(self.session).delete_all() PedidoGateway(self.session).delete_all()