# StackLight tests

This project contains the functional tests for the [StackLight](https://launchpad.net/lma-toolchain) plugins.

It is based on two other projects:

  * Fuel-Devops ([documentation](http://docs.fuel-infra.org/fuel-dev/devops.html)).

  * Fuel-QA ([documentation](https://docs.fuel-infra.org/fuel-qa/)).

## Getting started

1. Provision the SQL database for fuel-qa (see the [official
   documentation](https://docs.fuel-infra.org/fuel-dev/devops.html#configuring-database)
for the detailed procedure).
2. Prepare the environment:

        cp openrc.default openrc
        # Edit the openrc file as needed
        . openrc
        # You can also pass a MOS version (default is 9.0 it not specified)
        . openrc 7.0
        ./utils/fuel-qa-builder/prepare_env.sh

3. Activate the Python virtual environment:

        . $VENV_PATH/bin/activate

4. If you want to run UI test in headless mode, install these packages:

        sudo apt-get install xvfb firefox -y

5. Run the tests:

        ./utils/jenkins/system_tests.sh -k -K -j fuelweb_test -t test -w $(pwd) -o --group=<your_test_group_to_run>

## Documentation

The test cases include comments that can be turned into human-readable documentation:

        tox -edocs

The generated documentation is available at `doc/_build/html/index.html`.

## Contributing

If you would like to contribute to the development of this plugin,
you must follow the [OpenStack development workflow](
http://docs.openstack.org/infra/manual/developers.html#development-workflow)
instructions.

Patch reviews take place on the [OpenStack Gerrit](
https://review.openstack.org/#/q/status:open+project:openstack/fuel-plugin-lma-collector,n,z)
system.

Guidelines:

* Run `tox` before submitting a review. You can change MOS version depending on what argument you specified earlier (default is mos9)

```
VERSION=mos7 MOS_VERSION=7.0 tox
VERSION=mos9 MOS_VERSION=9.1 tox
```

* Declare test groups using the @test decorator (see the [Proboscis](https://pythonhosted.org/proboscis) documentation for details)

```
@test(groups=["<full_unique_name_of_test>",
              "<test_method_purpose>",
              "<plugin_name>",
              "<test_category>"])
```

 For example

```
@test(groups=["install_influxdb_grafana",
              "install",
              "influxdb_grafana",
              "smoke"])
def install_influxdb_grafana():
    ....
```

## Communication

The *OpenStack Development Mailing List* is the preferred way to communicate
with the members of the project.
Emails should be sent to `openstack-dev@lists.openstack.org` with the subject
prefixed by `[fuel][plugins][lma]`.