FreedomBox/functional_tests
Sunil Mohan Adapa 1ec5b213ad
snapshot: Minor styling fixes
- Avoid use of _ in functional steps.

- flake8 fixes.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-01-08 14:00:26 -08:00
..
2019-01-08 14:00:26 -08:00
2019-01-08 14:00:11 -08:00

Install Dependencies

$ sudo apt install python3-pytest
$ pip3 install splinter
$ pip3 install pytest-splinter
$ pip3 install pytest-bdd
$ sudo apt install xvfb  # optional, to avoid opening browser windows
$ pip3 install pytest-xvfb  # optional, to avoid opening browser windows
  • Install the latest version of geckodriver. It's usually a single binary which you can place at /usr/local/bin/geckodriver

  • Install the latest version of Mozilla Firefox. Download and extract the latest version from the Firefox website and symlink the binary named firefox to /usr/local/bin.

Geckodriver will then use whatever version of Firefox you symlink as /usr/local/bin/firefox.

Run FreedomBox Service

Warning: Functional tests will change the configuration of the system under test, including changing the hostname and users. Therefore you should run the tests using FreedomBox running on a throw-away VM.

The VM should have NAT port-forwarding enabled so that 4430 on the host forwards to 443 on the guest. From where the tests are running, the web interface of FreedomBox should be accessible at https://localhost:4430/.

Setup FreedomBox Service for tests

Via Plinth, create a new user as follows:

  • Username: tester
  • Password: testingtesting

This step is optional if a fresh install of Plinth is being tested. Functional tests will create the required user using FreedomBox's first boot process.

Run Functional Tests

From the directory functional_tests, run

$ py.test

The full test suite can take a long time to run (over 15 minutes). You can also specify which tests to run, by tag or keyword:

$ py.test -k essential

If xvfb is installed and you still want to see browser windows, use the --no-xvfb command-line argument.

$ py.test --no-xvfb -k mediawiki