paint-brush
Cherrypy Introduction: Simple Python Library for Quick Application Developmentby@vaibhavtyagi
512 reads
512 reads

Cherrypy Introduction: Simple Python Library for Quick Application Development

by VaibhavSeptember 9th, 2020
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

For day to day work in dev-ops or for testing team, we need to put stub in between some application to fill the gap for the application which are not present on local testing lab, for that we need some stub so that it can mimic like actual application. We will discuss one tool which eventually make tester and developer life very easy, The cherrypy library of python. I will write simplest code example to create HTTP server, which takes json payload in POST request and also send the json response in reply.

Company Mentioned

Mention Thumbnail
featured image - Cherrypy Introduction: Simple Python Library for Quick Application Development
Vaibhav HackerNoon profile picture

For day to day work in dev-ops or for testing team , we need to put stub in between some application to fill the gap for the application which are not present on local testing lab , for that we need to put some stub so that it can mimic like actual application .

We will discuss one tool here which eventually make tester and developer life very easy , The cherrypy library of python.

I will write simplest code example to create HTTP server , which takes json payload in POST request and also send the json response in reply.

Sample request

'http://127.0.0.1:9990/context' 
Payload  '{"tid": "11000098777","deviceid": "9000002020020202"}'

Response from server

{  RESULT : "ACCEPTED"}

Sample code for above requirement in python

Instillation steps

For installing cherrypy you need to use pip utility and can install cherrypy

pip install cherrypy

Server.py

import cherrypy
import os.path
import configparser
import json

class Server(object):
  def __init__(self):
        self.response_json_objectresponse_json_object=''
        with open('./response.json') as f:
            self.response_json_object = json.load(f)

    @cherrypy.expose()
    @cherrypy.tools.json_in()
    @cherrypy.tools.json_out()
    def context(self):
        return self.response_json_object

configfile=os.path.join(os.path.dirname(__file__),'./server.conf')
cherrypy.quickstart(Server(),'/', config=configfile)
  • Above program is using one config file named server.conf
  • Also it is reading one json file which will be send as json response for the incoming request.

server.conf

[global]
server.socket_host = '127.0.0.1'
server.socket_port = 9990
server.thread_pool=10
tools.staticdir.on = False
tools.staticdir.dir =
log.access_file = "./logs/access1.log"
log.error_file = "./logs/error1.log"
log.screen = False
tools.sessions.on = True

response.json

{  RESULT : "ACCEPTED"}

On Linux terminal you can use below command to run the program

Start the application

paython Server.py &

Test the application

curl -i -X POST -H "Content-Type:application/json" 'http://127.0.0.1:9990/context' --data '{"tid": "11000098777","deviceid": "9000002020020202"}'
{  RESULT : "ACCEPTED"}