This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

A Python package for HTTP-service testing. Contains reusable steps for Behave BDD (behaviour-driven development) tool. It’s mostly useful for testing REST APIs and interacting with JSON data over HTTP.



from behave_http.environment import before_scenario


from behave_http.steps import *

(You can mix them with your own steps in the same file.)


Feature: Some API
  As an API client
  I want to be able to manage activities and sessions

  Background: Set server name, headers and reset test user's database
    Given I am using server "$SERVER"
    And I set base URL to "$URL"
    And I set "Accept" header to "application/json"
    And I set "Content-Type" header to "application/json"
    And I set BasicAuth username to "" and password to "t"

  Scenario: Ensure account exists
    When I make a GET request to "account"
    Then the response status should be 200

If your test target is you can test it with:

SERVER= URL=api behave

General rules on using quoted "values" in feature files:

  • JSONs and numbers (response code, array length) must appear as is.
  • Other substitutes must be quoted (variable names, headers and their values).

While there is no extensive documentation the features (self tests) directory contains (a hopefully complete) set of usage examples.

Testing for nested JSON content with non-ASCII characters in paths is not supported by the underlying “jpath“ library.


To install essential packages for the test suite:

pip install -r requirements_dev.txt

A complete list of development tools used in the Makefile can be installed with:

pip install coveralls docutils flake8 tox wheel

Running tests

Launch a special HTTP server responding to test requests:


Then run feature tests in a separate shell:

make test-all # runs on every supported python version with tox
make test     # runs in current python environment only

Environment variables

Set TEST_SERVER to full URL (including schema) if default port (55080) on localhost is already used by another process. For example:

python >testserver.log 2>&1 &
make test-coverage


The REST steps code is initially derived from rest api blueprint [1], so this project inherits the same BSD 2-Clause License (see LICENSE file).

Release History

Release History


This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
behave_http-0.1.0-py2.py3-none-any.whl (8.7 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Nov 13, 2015
behave-http-0.1.0.tar.gz (6.8 kB) Copy SHA256 Checksum SHA256 Source Nov 13, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting