That “someone” was my development manager here, it was brief timeline that I spend with him before he moved, but within that brief time frame he changed my perspective towards to the automation. From that time I started automating things in all possible way. It’s not only UI automation. I have developed different frameworks for my current organization.
I built one REST API Testing framework (actually cloned from https://github.com/chitamoor/Rester). I build another framework which I named PyRabbit, to help us to test each of our microservices. There is another recently I finished development is called “LocalDeployer”. Purpose of this project is to allow download artifacts from our Bamboo CI and deploy microservices with a single command.
There are few other projects I have been working with which are out context of this article :). But, what I want to share is the packages I have used so far while I was/am working with so many versatile projects. The packages I have used so far are as follows:
Requests
PIKA
Pika is a pure-Python implementation of the AMQP 0-9-1 protocol that tries to stay fairly independent of the underlying network support library.
If you want to inject data to RabbitMQ, or want to implement consumer and subscriber for your back-end RabbitMQ then using PIKA would be the perfect choice. It’s fairly simple API saves lots effort. Also nice tutorial can be found in RabbitMQ Tutorial section as well.
Paramiko
Paramiko is a Python (2.6+, 3.3+) implementation of the SSHv2 protocol [1], providing both client and server functionality.
So it’s all about SSH. If you want establish the SSH tunneling then it’s definitely what you are looking for. Please checkout detail at http://www.paramiko.org/.
Psycopg2
from psycopg2 import connect
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
con = connect(database="postgres", user=username, password=password, host=dbhost, port="5432")
con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cur = con.cursor()
cur.execute("CREATE DATABASE " + dbname)
cur.close()
con.close()