Selenium WebDriver compatible page-object model and utilities for Firefox Accounts
Перейти к файлу
Stephen Donner c1d738810d Update geckodriver + Firefox versions (#133)
* Update geckodriver + Firefox versions

* Use latest Firefox build/version
2017-08-03 11:40:19 -07:00
fxapom Remove support for Marionette client and migrate to PyPOM (#90) 2017-03-14 17:12:25 -07:00
requirements Update pytest to 3.2.0 (#135) 2017-08-03 17:02:59 +01:00
tests Switch to Firefox 52 w/Marionette (#106) 2017-05-02 18:33:45 +01:00
.gitignore Switch tests to Tox 2016-07-28 15:40:25 +01:00
.travis.yml Update geckodriver + Firefox versions (#133) 2017-08-03 11:40:19 -07:00
CHANGES.rst Update release notes for v1.10.1 2017-07-06 15:09:41 +01:00
Jenkinsfile Upgrade to Firefox 54 (#121) 2017-06-21 10:19:06 +01:00
LICENSE Change the readme to rst format 2015-06-19 09:59:03 -04:00
README.rst Fix silly nit (#99) 2017-03-30 22:39:13 +01:00
setup.py Add python 3.6 classifier 2017-07-06 15:05:42 +01:00
tox.ini Submit build results to Treeherder (#100) 2017-03-31 21:31:31 +01:00

README.rst

Firefox Accounts Page Object Model
==================================

`Selenium WebDriver <http://docs.seleniumhq.org/docs/03_webdriver.jsp>`_ compatible page-object model and utilities for `Firefox Accounts <https://accounts.firefox.com>`_

.. image:: https://img.shields.io/pypi/l/fxapom.svg
   :target: https://github.com/mozilla/fxapom/blob/master/LICENSE
   :alt: License
.. image:: https://img.shields.io/pypi/v/fxapom.svg
   :target: https://pypi.python.org/pypi/fxapom/
   :alt: PyPI
.. image:: https://img.shields.io/travis/mozilla/fxapom.svg
   :target: https://travis-ci.org/mozilla/fxapom/
   :alt: Travis
.. image:: https://img.shields.io/github/issues-raw/mozilla/fxapom.svg
   :target: https://github.com/mozilla/fxapom/issues
   :alt: Issues
.. image:: https://pyup.io/repos/github/mozilla/fxapom/shield.svg
   :target: https://pyup.io/repos/github/mozilla/fxapom/
   :alt: Updates
.. image:: https://pyup.io/repos/github/mozilla/fxapom/python-3-shield.svg
   :target: https://pyup.io/repos/github/mozilla/fxapom/
   :alt: Python 3

Overview
--------

This package contains a utility to create a test Firefox Account on either the dev or prod instance of Firefox Accounts,
as well as a set of page objects that can be used to interact with Firefox Accounts' sign in screens.

Installation
------------

``python setup.py develop``

**If running on a Mac, you may need the following before running the above command:**

``pip install cryptography``

Usage
-----

To create a test Firefox Account, simply create an instance of the ``FxATestAccount`` object.
You can pass the url for the Firefox Accounts API server into the constructor
or, if you know you want to create a development Account, you can omit that argument.

There are two constants available to you to specify the url for either the development environment
or the production environment, which are:

* ``fxapom.DEV_URL`` - the url for the development environment
* ``fxapom.PROD_URL`` - the url for the production environment

Example of creating an account on the development environment, using the default:

.. code-block:: python

  from fxapom.fxapom import FxATestAccount
  account = FxATestAccount()


Example of creating an account on the development environment, specifying the ``DEV_URL``:

.. code-block:: python

  from fxapom.fxapom import DEV_URL, FxATestAccount
  account = FxATestAccount(DEV_URL)

To sign in via Firefox Accounts, use the ``sign_in`` method in the ``WebDriverFxA`` object,
passing in the email address and password:

.. code-block:: python

  from fxapom.fxapom import WebDriverFxA
  fxa = WebDriverFxA(selenium)
  fxa.sign_in(email_address, password)

Note that we are passing ``selenium`` into the constructor of ``WebDriverFxA``,
which it then uses to interact with the Firefox Accounts web pages.

To create an account and then use it to sign in, use both tools described above:

.. code-block:: python

  from fxapom.fxapom import FxATestAccount, WebDriverFxA
  account = FxATestAccount()
  fxa = WebDriverFxA(selenium)
  fxa.sign_in(account.email, account.password)

Running The Tests
-----------------

* `Install Tox <http://tox.readthedocs.io/en/latest/install.html>`_
* Run ``tox``

Resources
---------

- `Release Notes <http://github.com/mozilla/fxapom/blob/master/CHANGES.rst>`_
- `Issue Tracker <http://github.com/mozilla/fxapom/issues>`_
- `Code <http://github.com/mozilla/fxapom/>`_