# Invasive Device Model Testing

## Running Invasive Device Model Tests

Invasive tests are those that attempt to change the values of properties, and execute methods on the Device Model of a Node under Test (NuT).
Non-invasive tests are limited to changing only the value of User Labels in the NuT's Device Model.

By default, the `IS-12-01` and `IS-14-01` test suites will __NOT__ execute invasive tests; these can be enabled by setting `MS05_INVASIVE_TESTING` to `True` in your `UserConfig.py` file as described in [Installation](1.0.%20Installation.md).

## Running Interactive Invasive Tests

When running invasive tests, the Testing Façade can be used by a user to interactively select which properties and methods of the NuT's Device Model are subject to invasive testing.

Interactive mode is disabled by default, but can be enabled by setting `MS05_INTERACTIVE_TESTING` to `True` in your `UserConfig.py` file.

Use the following command to launch the Testing Façade:

```shell
python3 nmos-testing-facade.py
```

By default the Testing Façade will run on localhost port 5001. This can be altered by adding `TESTING_FACADE_PORT` to your `UserConfig.py` file.

In the NMOS Testing Tool, when running the `IS-12-01` or `IS-14-01` test suites, provide the IP/hostname of the Testing Façade (e.g. localhost) and the port of the Testing Façade (use 5001 by default).
