Python client library for SeatGeak's Sixpack ab testing framework.
First install in your virtual environment:
$ pip install sixpack-client
Basic example:
from sixpack.sixpack import Session
session = Session()
# Participate in a test (creates the test if necessary)
session.participate("new-test", ["alternative-1", "alternative-2"])
# Convert
session.convert("new-test")
Each session has a client_id associated with it that must be preserved across requests. Here's what the first request might look like:
session = Session()
resp = session.participate("new-test", ["alternative-1", "alternative-2"])
set_cookie_in_your_web_framework("sixpack-id", session.client_id)
You can then make decisions in your application based on resp['alternative']['name']:
session = Session()
resp = session.participate("new-test", ["alt-1", "alt-2"])
if resp["alternative"]["name"] == "alt-1":
set_variable_in_view("new-test-alternative", "alt-1")
For future requests, create the Session using the client_id stored in the cookie:
client_id = get_cookie_from_web_framework("sixpack-id")
session = Session(client_id=client_id)
session.convert("new-test")
Sessions can take an optional options dictionary that takes host and timeout as keys. This allows you to customize Sixpack's location.:
options = {'host': 'http://mysixpacklocation.com'}
session = Session(client_id="123", options=options)
If Sixpack is unreachable or other errors occur, sixpack-py will provide the control alternative.
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Added some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request