Skip to main content

pytest plugin for Firefox Accounts

Project description

pytest-fxa is a plugin for pytest that provides test accounts for Firefox Accounts.

License PyPI Travis https://img.shields.io/badge/code%20style-black-000000.svg Issues Dependabot

Requirements

You will need the following prerequisites in order to use pytest-fxa:

  • Python 2.7, 3.6, 3.7, PyPy, or PyPy3

Installation

To install pytest-fxa:

$ pip install pytest-fxa

Creating a test Firefox Account

To create a Firefox Account for testing, include the fxa_account fixture name in your test method signature. This is a tuple with named properties for the test account’s email and password. The following example shows how this could be used with Selenium to sign into a website that uses Firefox Accounts for authentication:

def test_my_fxa_site(fxa_account, selenium):
    selenium.get('https://example.com/')
    selenium.find_element(By.ID, 'email').send_keys(fxa_account.email)
    selenium.find_element(By.ID, 'password').send_keys(fxa_account.password)
    selenium.find_element(By.ID, 'login').click()

The test account will be automatically destroyed when it’s no longer needed.

Specifying an environment

By default all accounts will be created on the ‘stage’ environment. You can set the FXA_ENV environment variable to target ‘production’ or ‘stable’.

If you need to override the environment for a subset of tests, or run tests against multiple environments, you can use the fxa_env marker:

@pytest.mark.fxa_env('production')
def test_production(fxa_account):
    selenium.get('https://example.com/')
    selenium.find_element(By.ID, 'email').send_keys(fxa_account.email)
    selenium.find_element(By.ID, 'password').send_keys(fxa_account.password)
    selenium.find_element(By.ID, 'login').click()


@pytest.mark.fxa_env('stage', 'stable')
def test_stage(fxa_account):
    selenium.get('https://elpmaxe.com/')
    selenium.find_element(By.ID, 'email').send_keys(fxa_account.email)
    selenium.find_element(By.ID, 'password').send_keys(fxa_account.password)
    selenium.find_element(By.ID, 'login').click()

Alternatively, you can override the fxa_urls fixture for full control of the URLs for your environment:

@pytest.fixture
def fxa_urls():
    return {
        'authentication': 'https://api-accounts.stage.mozaws.net/v1',
        'oauth': 'https://oauth.stage.mozaws.net/v1',
        'content': 'https://accounts.stage.mozaws.net/',
        'profile': 'https://profile.stage.mozaws.net/v1',
        'token': 'https://token.stage.mozaws.net/'}

Resources

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

pytest_fxa_mte-1.6.0b1.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

pytest_fxa_mte-1.6.0b1-py2.py3-none-any.whl (5.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytest_fxa_mte-1.6.0b1.tar.gz.

File metadata

  • Download URL: pytest_fxa_mte-1.6.0b1.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for pytest_fxa_mte-1.6.0b1.tar.gz
Algorithm Hash digest
SHA256 728a5dc6ce18fe387f34548deca509b091c2f6fa2172d95b2fda67c841728bc9
MD5 cc8f56660661f0f4b1672a92fe8527d9
BLAKE2b-256 1bb96535b8e99a74c8a7a94f27684d406479422877e2b0eb4ce8296c26e1e39f

See more details on using hashes here.

File details

Details for the file pytest_fxa_mte-1.6.0b1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_fxa_mte-1.6.0b1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ba02bad416f1eb71b306e0320c89a1727da722cff24ebef80e65098e117599d7
MD5 79ac5b801d3bf8c2b0e857d1c3baa0ea
BLAKE2b-256 7ff5cdb51f8726da9715af735e7b77221676f69c1e3ba6277e09fa6af9df05fa

See more details on using hashes here.

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