| .. _cli_field_guide: |
| |
| Tempest Field Guide to CLI tests |
| ================================ |
| |
| |
| What are these tests? |
| --------------------- |
| The cli tests test the various OpenStack command line interface tools |
| to ensure that they minimally function. The current scope is read only |
| operations on a cloud that are hard to test via unit tests. |
| |
| |
| Why are these tests in tempest? |
| ------------------------------- |
| These tests exist here because it is extremely difficult to build a |
| functional enough environment in the python-\*client unit tests to |
| provide this kind of testing. Because we already put up a cloud in the |
| gate with devstack + tempest it was decided it was better to have |
| these as a side tree in tempest instead of another QA effort which |
| would split review time. |
| |
| |
| Scope of these tests |
| -------------------- |
| This should stay limited to the scope of testing the cli. Functional |
| testing of the cloud should be elsewhere, this is about exercising the |
| cli code. |
| |
| |
| Example of a good test |
| ---------------------- |
| Tests should be isolated to a single command in one of the python |
| clients. |
| |
| Tests should not modify the cloud. |
| |
| If a test is validating the cli for bad data, it should do it with |
| assertRaises. |
| |
| A reasonable example of an existing test is as follows:: |
| |
| def test_admin_list(self): |
| self.nova('list') |
| self.nova('list', params='--all-tenants 1') |
| self.nova('list', params='--all-tenants 0') |
| self.assertRaises(subprocess.CalledProcessError, |
| self.nova, |
| 'list', |
| params='--all-tenants bad') |