Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

ejpiaj

Project description

https://badge.fury.io/py/ejpiaj.png https://travis-ci.org/onjin/ejpiaj.png?branch=master https://pypip.in/d/ejpiaj/badge.png https://pypip.in/license/ejpiaj/badge.png

License

  • Free software: BSD license

Features

  • describe your API requests in single file (YAML, JSON and XML at this moment) so you can store you API tests with code in same repository (f.i. as ejpiaj.json file)
  • file format is detected from file extension .yml, .json and .xml
  • extract variables from responses and store them to use in next requests (f.i. to get and use authorization token)
  • write assertions agains responses
  • register your own variables extractors and assertions
  • run suite using ejpiaj-cli test -m my_addons -s tests.yml command

Sample yml file:

requests:
  001_search_repos_with_django_in_name:
    method: get
    url: https://api.github.com/search/repositories
    url_params:
      q: django
      sort: stars
      order: desc
    variables:
      json:
        total_count: count
        items.[0].full_name: repo_name
    assertions:
      response:
        - 'status_code equals 200'
      json:
        - 'items.[0].full_name contains ango'

  002_get_commits_from_first_repo:
    method: get
    url: https://api.github.com/repos/{{repo_name}}/commits
    assertions:
      response:
        - 'status_code equals 200'

Run it:

$ ejpiaj-cli test sample.yml -s

--------------------------------------------------------------------------------
P - passed assertions, F - failed assertions, V - extracted variables
--------------------------------------------------------------------------------
✓ 001_search_repos_with_django_in_name [P2,F0,V2] {'count': 29754, 'repo_name': u'django/django'}
✓ 002_get_commits_from_first_repo [P1,F0,V0] {}
--------------------------------------------------------------------------------

SNI note

In order to support SNI in python 2.6/2.7 you need to install additional packages:

  • pyOpenSSL, a Python wrapper module around the OpenSSL library.
  • ndg-httpsclient, enhanced HTTPS support for httplib and urllib2.
  • pyasn1, ASN.1 types and codecs.

History

0.4.4 (2015-01-21)

  • Fixed unicode errors while reading str/int parameters

0.4.3 (2014-09-10)

  • Fixed compatibility with python 3.3

0.4.2 (2014-09-10)

  • Fixed context replacing at variables replacing

0.4.1 (2014-09-10)

  • Fixed non unicode extracted variables

0.4.0 (2014-03-11)

  • Added support for xml and json files

0.3.3 (2014-03-06)

  • Added -e / –env option to ejpiaj-cli to pass initial variables
  • Added -q / –quiet option to ejpiaj-cli to quiet output

0.3.2 (2014-02-17)

  • Added -s option to ejpiaj-cli to display extracted variables

0.3.1 (2014-02-17)

  • Fixed loading custom module from current directory

0.3.0 (2014-02-16)

  • Added support to load own module with custom assertions and variable extractors using ejpiaj-cli tool

0.2.3 (2014-02-10)

  • Fixed tests order (alphabetical)

0.2.2 (2014-02-10)

  • Fixed variable substiution for multi varaibles
  • Added variable substitution in ‘url’

0.2.1 (2014-02-07)

  • Fixed variables substitution if variable is None

0.2.0 (2014-02-07)

  • Added support for form_params and headers

0.1.0 (2014-02-01)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
ejpiaj-0.4.4.tar.gz (21.9 kB) Copy SHA256 hash SHA256 Source None Jan 21, 2015

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page