1#!/usr/bin/env python3
 2
 3"""Root directory for core automated tests.
 4
 5Use the `environment` subdirectory for tests which purely check for a valid Python environment.
 6They should not use anything CHART specific. These tests should all run fine with only
 7this repository available, and no dependencies on any specific project.
 8In general we deploy a fully-sized environment with all Python modules available on all
 9projects rather than trying to slim down individual environments with just the required modules
10for particular projects.
11
12Use the `application` directory for tests of the application code itself. This may include very
13basic tests close to doctests that require no project. Otherwise tests should use the `project`
14fixture and skip themselves if the user did not run pytest with the "--project <project>" option.
15The invoke tasks.py scripts in individual projects include the option to run core tests with
16correct options.
17The user may have to ensure core, project are on PYTHONPATH and the launcher is in PATH.
18Tests that are only specific to some projects should be avoided here unless it really makes sense,
19such as tests that apply to all PUS-based projects.
20
21Do not use tests in `legacy` directly. One day these should be ported over to run nicely in the
22current configuration. Do not add more legacy tests.
23
24These tests can sometimes be run directly, or always via pytest, or by running "invoke test"
25at top level.
26"""