diff options
author | Arif Ali <arif.ali@canonical.com> | 2023-10-30 23:07:08 +0000 |
---|---|---|
committer | Jake Hunsaker <jacob.r.hunsaker@gmail.com> | 2023-11-16 16:34:31 -0500 |
commit | cf3af27b34b934b77e6c702270467af9de9e7c9f (patch) | |
tree | 415c12afcc02b9fb44b2278f8596800e2cb30495 /tests | |
parent | 850bf47c5d005cd0f57c39f4543c4ddc30218f65 (diff) | |
download | sos-cf3af27b34b934b77e6c702270467af9de9e7c9f.tar.gz |
[juju][collect] Fix new juju collection
New version of juju uses colorisation, and therefore juju status
and json.loads doesn't load the juju status correctly. By using
--no-color based on the version of juju this should fix this
particular use-case
Resolves: #3399
Resolves: SET-339
Signed-off-by: Arif Ali <arif.ali@canonical.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unittests/juju/juju_cluster_tests.py | 56 |
1 files changed, 49 insertions, 7 deletions
diff --git a/tests/unittests/juju/juju_cluster_tests.py b/tests/unittests/juju/juju_cluster_tests.py index eae50b71..1c8054f6 100644 --- a/tests/unittests/juju/juju_cluster_tests.py +++ b/tests/unittests/juju/juju_cluster_tests.py @@ -40,6 +40,10 @@ def get_juju_status(cmd): } +def get_juju_version(): + return "2.9.45" + + def test_parse_option_string(): result = _parse_option_string(" a,b,c") assert result == ["a", "b", "c"] @@ -68,10 +72,16 @@ class JujuTest(unittest.TestCase): assert nodes == [] @patch( + "sos.collector.clusters.juju.juju._get_juju_version", + side_effect=get_juju_version, + ) + @patch( "sos.collector.clusters.juju.juju.exec_primary_cmd", side_effect=get_juju_status, ) - def test_get_nodes_app_filter(self, mock_exec_primary_cmd): + def test_get_nodes_app_filter( + self, mock_exec_primary_cmd, mock_get_juju_version + ): """Application filter.""" mock_opts = MockOptions() mock_opts.cluster_options.append( @@ -96,10 +106,16 @@ class JujuTest(unittest.TestCase): ) @patch( + "sos.collector.clusters.juju.juju._get_juju_version", + side_effect=get_juju_version, + ) + @patch( "sos.collector.clusters.juju.juju.exec_primary_cmd", side_effect=get_juju_status, ) - def test_get_nodes_app_regex_filter(self, mock_exec_primary_cmd): + def test_get_nodes_app_regex_filter( + self, mock_exec_primary_cmd, mock_get_juju_version + ): """Application filter.""" mock_opts = MockOptions() mock_opts.cluster_options.append( @@ -124,11 +140,15 @@ class JujuTest(unittest.TestCase): ) @patch( + "sos.collector.clusters.juju.juju._get_juju_version", + side_effect=get_juju_version, + ) + @patch( "sos.collector.clusters.juju.juju.exec_primary_cmd", side_effect=get_juju_status, ) def test_get_nodes_model_filter_multiple_models( - self, mock_exec_primary_cmd + self, mock_exec_primary_cmd, mock_get_juju_version ): """Multiple model filter.""" mock_opts = MockOptions() @@ -171,10 +191,16 @@ class JujuTest(unittest.TestCase): ) @patch( + "sos.collector.clusters.juju.juju._get_juju_version", + side_effect=get_juju_version, + ) + @patch( "sos.collector.clusters.juju.juju.exec_primary_cmd", side_effect=get_juju_status, ) - def test_get_nodes_model_filter(self, mock_exec_primary_cmd): + def test_get_nodes_model_filter( + self, mock_exec_primary_cmd, mock_get_juju_version + ): """Model filter.""" mock_opts = MockOptions() mock_opts.cluster_options.append( @@ -213,10 +239,16 @@ class JujuTest(unittest.TestCase): ) @patch( + "sos.collector.clusters.juju.juju._get_juju_version", + side_effect=get_juju_version, + ) + @patch( "sos.collector.clusters.juju.juju.exec_primary_cmd", side_effect=get_juju_status, ) - def test_get_nodes_unit_filter(self, mock_exec_primary_cmd): + def test_get_nodes_unit_filter( + self, mock_exec_primary_cmd, mock_get_juju_version + ): """Node filter.""" mock_opts = MockOptions() mock_opts.cluster_options.append( @@ -238,10 +270,16 @@ class JujuTest(unittest.TestCase): assert nodes == [":0", ":2"] @patch( + "sos.collector.clusters.juju.juju._get_juju_version", + side_effect=get_juju_version, + ) + @patch( "sos.collector.clusters.juju.juju.exec_primary_cmd", side_effect=get_juju_status, ) - def test_get_nodes_machine_filter(self, mock_exec_primary_cmd): + def test_get_nodes_machine_filter( + self, mock_exec_primary_cmd, mock_get_juju_version + ): """Machine filter.""" mock_opts = MockOptions() mock_opts.cluster_options.append( @@ -264,10 +302,14 @@ class JujuTest(unittest.TestCase): assert nodes == [":0", ":2"] @patch( + "sos.collector.clusters.juju.juju._get_juju_version", + side_effect=get_juju_version, + ) + @patch( "sos.collector.clusters.juju.juju.exec_primary_cmd", side_effect=get_juju_status, ) - def test_subordinates(self, mock_exec_primary_cmd): + def test_subordinates(self, mock_exec_primary_cmd, mock_get_juju_version): """Subordinate filter.""" mock_opts = MockOptions() mock_opts.cluster_options.append( |