Skip to main content

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.

Documentation

History

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.

Source Distribution

ejpiaj-0.4.2.tar.gz (120.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page