diff options
author | Jake Hunsaker <jhunsake@redhat.com> | 2022-12-02 16:20:01 -0500 |
---|---|---|
committer | Jake Hunsaker <jhunsake@redhat.com> | 2023-01-12 12:21:25 -0500 |
commit | 131b3bcf5691a158598bed30bd0af6ac9c96737c (patch) | |
tree | e70b824a077300eea34513a6305568c38696ac79 /tests/test_data/fake_plugins | |
parent | ca8a8a7b9f452a81c5654234918b99092620bf13 (diff) | |
download | sos-131b3bcf5691a158598bed30bd0af6ac9c96737c.tar.gz |
[testing] Change location of mocked files for tests
Previously, mocked files were kept under the `tests/test_data/`
directory and generally mimic'd the file location they would be
temporarily copied to during the execution of their relevant tests.
This has a few maintainability drawbacks, and the handling of the
`files` attribute for test cases as either strings or tuples is at best
confusing.
Improve on this by instead making the `files` references relative to
where the test case file is written. This enables easier maintenance by
keeping all test requirements closer together, rather than spread across
the repo. As such, the `files` attribute now requires a list of tuples,
taking the form `(relative_src, absolute_dest)`. Additionally, fake
plugins for tests that need them to artificially test a specific
criteria should also be included in the test's subdir now.
Along with this change, move several StageTwo tests to their own subdirs
that now contain both the test cases and the needed files for mocking.
This should be the new design pattern going forward - if a test needs to
mock files of any kind, put it in a new subdirectory (and if it doesn't
need to mock files, continue to keep it in the relevant directory within
the test suite).
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Diffstat (limited to 'tests/test_data/fake_plugins')
-rw-r--r-- | tests/test_data/fake_plugins/binary_test.py | 21 | ||||
-rw-r--r-- | tests/test_data/fake_plugins/default_env_test.py | 28 | ||||
-rw-r--r-- | tests/test_data/fake_plugins/skip_versions.py | 24 | ||||
-rw-r--r-- | tests/test_data/fake_plugins/timeout_test.py | 22 | ||||
-rw-r--r-- | tests/test_data/fake_plugins/unicode_test.py | 20 |
5 files changed, 0 insertions, 115 deletions
diff --git a/tests/test_data/fake_plugins/binary_test.py b/tests/test_data/fake_plugins/binary_test.py deleted file mode 100644 index 80bc841b..00000000 --- a/tests/test_data/fake_plugins/binary_test.py +++ /dev/null @@ -1,21 +0,0 @@ -# This file is part of the sos project: https://github.com/sosreport/sos -# -# This copyrighted material is made available to anyone wishing to use, -# modify, copy, or redistribute it subject to the terms and conditions of -# version 2 of the GNU General Public License. -# -# See the LICENSE file in the source distribution for further information. - -from sos.report.plugins import Plugin, IndependentPlugin - - -class BinaryPlugin(Plugin, IndependentPlugin): - """Test plugin for testing binary removal with --clean - """ - - plugin_name = 'binary_test' - short_desc = 'test plugin for removing binaries with --clean' - - - def setup(self): - self.add_copy_spec('/var/log/binary_test.tar.xz') diff --git a/tests/test_data/fake_plugins/default_env_test.py b/tests/test_data/fake_plugins/default_env_test.py deleted file mode 100644 index d1d1fb78..00000000 --- a/tests/test_data/fake_plugins/default_env_test.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file is part of the sos project: https://github.com/sosreport/sos -# -# This copyrighted material is made available to anyone wishing to use, -# modify, copy, or redistribute it subject to the terms and conditions of -# version 2 of the GNU General Public License. -# -# See the LICENSE file in the source distribution for further information. - -from sos.report.plugins import Plugin, IndependentPlugin - - -class DefaultEnv(Plugin, IndependentPlugin): - - plugin_name = 'default_env_test' - short_desc = 'Fake plugin to test default env var handling' - - def setup(self): - self.set_default_cmd_environment({ - 'TORVALDS': 'Linus', - 'GREATESTSPORT': 'hockey' - }) - - self.add_cmd_output( - "sh -c 'echo Does '$TORVALDS' play '$GREATESTSPORT'?'", - suggest_filename='env_var_test' - ) - - self.add_env_var(['TORVALDS', 'GREATESTSPORT']) diff --git a/tests/test_data/fake_plugins/skip_versions.py b/tests/test_data/fake_plugins/skip_versions.py deleted file mode 100644 index e8a1d533..00000000 --- a/tests/test_data/fake_plugins/skip_versions.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file is part of the sos project: https://github.com/sosreport/sos -# -# This copyrighted material is made available to anyone wishing to use, -# modify, copy, or redistribute it subject to the terms and conditions of -# version 2 of the GNU General Public License. -# -# See the LICENSE file in the source distribution for further information. - -from sos.report.plugins import Plugin, IndependentPlugin - - -class SkipVersions(Plugin, IndependentPlugin): - """Collect the fake version files from the test suite, to ensure proper - skipping of version files - """ - - plugin_name = 'skip_versions' - short_desc = 'fake plugin to test skipping version files via the IP parser' - - def setup(self): - self.add_copy_spec([ - '/tmp/sos-test-version.txt', - '/tmp/sos-test-version-noskip' - ]) diff --git a/tests/test_data/fake_plugins/timeout_test.py b/tests/test_data/fake_plugins/timeout_test.py deleted file mode 100644 index cfb148d7..00000000 --- a/tests/test_data/fake_plugins/timeout_test.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file is part of the sos project: https://github.com/sosreport/sos -# -# This copyrighted material is made available to anyone wishing to use, -# modify, copy, or redistribute it subject to the terms and conditions of -# version 2 of the GNU General Public License. -# -# See the LICENSE file in the source distribution for further information. - -from sos.report.plugins import Plugin, IndependentPlugin - - -class TimeoutTest(Plugin, IndependentPlugin): - - plugin_name = 'timeout_test' - short_desc = 'Tests timeout functionality in test suite' - plugin_timeout = 100 - - - def setup(self): - self.add_cmd_output('sleep 15') - self.add_cmd_output('echo I slept great', suggest_filename='echo_good') - self.add_cmd_output('sleep 30', timeout=10) diff --git a/tests/test_data/fake_plugins/unicode_test.py b/tests/test_data/fake_plugins/unicode_test.py deleted file mode 100644 index 541dfb5c..00000000 --- a/tests/test_data/fake_plugins/unicode_test.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file is part of the sos project: https://github.com/sosreport/sos -# -# This copyrighted material is made available to anyone wishing to use, -# modify, copy, or redistribute it subject to the terms and conditions of -# version 2 of the GNU General Public License. -# -# See the LICENSE file in the source distribution for further information. - -from sos.report.plugins import Plugin, IndependentPlugin - - -class UnicodeTest(Plugin, IndependentPlugin): - """Fake plugin to test the handling of a file with embedded unicode - """ - - plugin_name = 'unicode_test' - short_desc = 'Fake plugin to test unicode file handling' - - def setup(self): - self.add_copy_spec('/tmp/sos-test-unicode.txt') |