mozilla / iris_firefox

DEPRECATED - Test Suite for Firefox using Mozilla Iris
Mozilla Public License 2.0
41 stars 40 forks source link
abandoned unmaintained

iris_firefox

Travis (.com) GitHub GitHub repo size GitHub issues

Iris Firefox is a suite of tests specific to Firefox, using the Mozilla Iris test framework.

For more detailed information and troubleshooting tips, please view our wiki.

Installation

Mac instructions:

System Requirements

Setup

git clone https://github.com/mozilla/iris_firefox
# Run the Mac bootstrap script
cd iris
./bootstrap/bootstrap.sh
# Run this command to agree to xcode terms of service
sudo xcodebuild -license accept

Windows 7 / Windows 10 Professional instructions:

Setup

git clone https://github.com/mozilla/iris_firefox
cd iris_firefox
bootstrap\bootstrap.sh
# Install project requirements and activate the virtualenv
pipenv install
pipenv shell
# Run Iris
iris firefox

Ubuntu Linux instructions:

System Requirements

Setup

git clone https://github.com/mozilla/iris_firefox
cd iris_firefox
./bootstrap/bootstrap.sh
# Note: This will take around 10 minutes to download, compile, and install dependencies
# Run the following commands to complete installation and launch Iris
pipenv install
pipenv shell
iris firefox

Usage

For examples of using Iris Firefox, see our wiki and documentation.

Contributing

To contribute to the Iris Firefox project, more details are available on our wiki.

Enable Pre-Commit Hooks

Iris has pre-commit hooks for flake8 linting and black code formatting. These hooks will run black and flake8 prior to committing your changes.

This means that black will format all python files in-place, and flake8 will lint your code for any errors. If there are flake8 violations, your changes will not be committed. The list of ignored rules is documented in the tox.ini file. There should be a compelling reason to do so before adding to this list.

If you already have iris installed on your system prior to this patch, you will need to run pipenv install again to install the pre-commit module.

# Install dependencies, including pre-commit
pipenv install
# Install pre-commit hooks defined in .pre-commit-config.yaml
pre-commit install

That's it! Here's an example of how it works:

# make some changes
git add -A
git commit -m 'detailed commit message'
[WARNING] Unstaged files detected.
[INFO] Stashing unstaged files to /Users/ksereduck/.cache/pre-commit/patch1570121459.
black....................................................................Passed
Flake8...................................................................Failed
hookid: flake8

targets/firefox/bug_manager.py:11:1: E402 module level import not at top of file
targets/firefox/bug_manager.py:12:1: E402 module level import not at top of file
targets/firefox/bug_manager.py:14:1: E402 module level import not at top of file
targets/firefox/bug_manager.py:15:1: E402 module level import not at top of file
targets/firefox/bug_manager.py:16:1: E402 module level import not at top of file

[INFO] Restored changes from /Users/ksereduck/.cache/pre-commit/patch1570121459.