README
======

Purpose of this directory
-------------------------

This directory provides system tests for ngcpcfg, using pytest (a mature full-featured Python testing tool).

Tips for working with tests
---------------------------

If you're working on a new feature, try to simulate a specific behavior, or need to run ngcpcfg for any other reason,
you might need to run ngcpcfg with a certain environment.
This can be achieved by injecting according environment variables to ngcpcfg.
The following command line provides an example invocation:

[source,bash]
cd t # we're assuming in the following command line that you're inside this testing folder
HELPER=../helper \
HOOKS=../hooks \
CONFIG_POOL=/etc/ \
NGCPCFG=./fixtures/ngcpcfg.cfg \
SCRIPTS=../scripts/ \
FUNCTIONS=../functions/ \
NGCP_BASE_TT2=/tmp/pytest-of-root/pytest-XX/test_YYY/ \
OUTPUT_DIRECTORY=/tmp/  \
TEMPLATE_POOL_BASE=/tmp/pytest-of-root/pytest-XX/test_YYY \
../sbin/ngcpcfg [...]

Test runs
----------

It's recommended to run the tests inside a docker container (see Dockerfile for usage instructions).
Running all available tests from inside the ``t`` directory then is as simple as:

[source,bash]
py.test-3 -v

To run only the tests matching 'test_patch_action' execute:

[source,bash]
py.test-3 -v  -k test_patch_action