/python-oauth2

A fully tested, abstract interface to creating OAuth clients and servers.

Primary LanguagePythonMIT LicenseMIT

Join the chat at https://gitter.im/joestump/python-oauth2 Build Status Coverage Number of issues Licence MIT

Note: This library implements OAuth 1.0 and not OAuth 2.0.

Overview

python-oauth2 is a python oauth library fully compatible with python versions: 2.6, 2.7, 3.3 and 3.4. This library is depended on by many other downstream packages such as Flask-Oauth.

Installing

You can install oauth2 via the PIP package.

$ pip install oauth2

We recommend using virtualenv.

Examples

Examples can be found in the wiki

Running tests

You can run tests using the following at the command line:

$ pip install -r requirements.txt
$ python setup.py test

History

This code was originally forked from Leah Culver and Andy Smith's oauth.py code. Some of the tests come from a fork by Vic Fryzel, while a revamped Request class and more tests were merged in from Mark Paschal's fork. A number of notable differences exist between this code and its forefathers:

  • 100% unit test coverage.
  • The DataStore object has been completely ripped out. While creating unit tests for the library I found several substantial bugs with the implementation and confirmed with Andy Smith that it was never fully baked.
  • Classes are no longer prefixed with OAuth.
  • The Request class now extends from dict.
  • The library is likely no longer compatible with Python 2.3.
  • The Client class works and extends from httplib2. It's a thin wrapper that handles automatically signing any normal HTTP request you might wish to make.