File fix-issue-2068-test.patch of Package salt

From 43180f21da4216ca36608a32326dc789385ded77 Mon Sep 17 00:00:00 2001
From: Bo Maryniuk <bo@suse.de>
Date: Wed, 9 Jan 2019 16:08:19 +0100
Subject: [PATCH] Fix issue #2068 test

Skip injecting `__call__` if chunk is not dict.

This also fixes `integration/modules/test_state.py:StateModuleTest.test_exclude` that tests `include` and `exclude` state directives containing the only list of strings.

Minor update: more correct is-dict check.
---
 salt/state.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/salt/state.py b/salt/state.py
index cb7293ce22..63f451178f 100644
--- a/salt/state.py
+++ b/salt/state.py
@@ -13,6 +13,7 @@ The data sent to the state calls is as follows:
 
 from __future__ import annotations
 
+import collections
 import copy
 import datetime
 import fnmatch
@@ -3122,16 +3123,18 @@ class State:
         """
         for chunk in high:
             state = high[chunk]
+            if not isinstance(state, collections.Mapping):
+                continue
             for state_ref in state:
                 needs_default = True
+                if not isinstance(state[state_ref], list):
+                    continue
                 for argset in state[state_ref]:
                     if isinstance(argset, str):
                         needs_default = False
                         break
                 if needs_default:
-                    order = state[state_ref].pop(-1)
-                    state[state_ref].append("__call__")
-                    state[state_ref].append(order)
+                    state[state_ref].insert(-1, "__call__")
 
     def call_high(
         self, high: HighData, orchestration_jid: Union[str, int, None] = None
-- 
2.47.0

openSUSE Build Service is sponsored by