Socket
Socket
Sign inDemoInstall

webtest-plus

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webtest-plus

An extension of WebTest with useful extras, including requests-style authentication.


Maintainers
1

============ webtest-plus

.. image:: https://badge.fury.io/py/webtest-plus.png :target: http://badge.fury.io/py/webtest-plus

.. image:: https://travis-ci.org/sloria/webtest-plus.png?branch=master :target: https://travis-ci.org/sloria/webtest-plus

An extension of WebTest <http://webtest.pythonpaste.org/en/latest/>_ with useful extras, including requests <http://docs.python-requests.org/en/latest/>_-style authentication.

Install

.. code-block:: bash

$ pip install -U webtest-plus

Usage

.. code-block:: python

import unittest
from myapp import app
from webtest_plus import TestApp

class TestMyApp(unittest.TestCase):

    def setUp(self):
        self.app = TestApp(app)

    def test_protected_endpoint(self):
        response = self.app.get("/secret/", expect_errors=True)
        assert response.status_code == 401
        # Requests-style authentication
        response = self.app.get("/secret/", auth=("admin", "passw0rd"))
        assert response.status_code == 200

    def test_more_secrets(self):
        # Another way to authenticate
        self.app.authenticate(username="admin", password="passw0rd")
        assert self.app.get("/secret/").status_code == 200
        self.app.deauthenticate()
        assert self.app.get("/secret/", expect_errors=True).status_code == 401

    def test_posting_json(self):
        # Testing json requests and responses
        response = self.app.post_json("/postsecret/", {"secret": "myprecious"},
                                        auth=("admin", "passw0rd"))
        assert response.request.content_type == "application/json"

    def test_clicking(self):
        response = self.app.get("/")
        response = response.click("Protected link", auth=("admin", "passw0rd"))
        assert response.status_code == 200

    def test_token_auth(self):
        response = self.app.get('/secret-requires-token/', expect_errors=True)
        assert response.status_code == 401

        # Authenticate with JWT
        response = self.app.get('/secret-requires-token',
            auth='yourlongtokenhere', auth_type='jwt')
        assert response.status_code == 200

Features

  • Basic HTTP authentication
  • JSON Web Token <https://openid.net/specs/draft-jones-json-web-token-07.html>_ authentication
  • Auto-follow redirects
  • Framework-agnostic

Requirements

  • Python >= 2.6 or >= 3.3

License

MIT licensed. See the bundled LICENSE <https://github.com/sloria/webtest-plus/blob/master/LICENSE>_ file for more details.

Changelog

1.0.0 (2017-05-17) ++++++++++++++++++

  • Fix handling of utf-encoded values when using auth (#3). Thanks @biern for the catch and patch.
  • Drop support for Python 2.6.
  • Test against Python 3.6.

0.3.3 (2015-03-17) ++++++++++++++++++

  • Implement TestApp.head.

0.3.2 (2014-06-04) ++++++++++++++++++

  • Bug fix that caused an UnboundLocalError.

0.3.1 (2014-05-31) ++++++++++++++++++

  • Fix string encoding bug on Python 2.

0.3.0 (2014-05-31) ++++++++++++++++++

  • Add support for JSON web token authentication.

0.2.1 (2013-11-24) ++++++++++++++++++

  • Add authentication to TestResponse.click and TestResponse.clickbutton.

0.2.0 (2013-10-15) ++++++++++++++++++

  • Add support for JSON methods (e.g. app.post_json, etc.)

0.1.0 (2013-10-06) ++++++++++++++++++

  • First release.
  • HTTP Basic Authentication working.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc