Fix ValueError exception in state.show_state_usage

This commit is contained in:
Gediminas Zlatkus 2021-06-14 21:49:06 +03:00 committed by Megan Wilhite
parent 90ed88638a
commit cb1917b0f4
3 changed files with 13 additions and 24 deletions

1
changelog/60179.fixed Normal file
View file

@ -0,0 +1 @@
Fixed ValueError exception in state.show_state_usage

View file

@ -3447,7 +3447,7 @@ class LazyAvailStates:
def items(self):
self._fill()
ret = []
for saltenv, states in self._avail:
for saltenv, states in self._avail.items():
ret.append((saltenv, self.__getitem__(saltenv)))
return ret

View file

@ -848,31 +848,19 @@ class HighStateTestCase(TestCase, AdaptedConfigurationTestCaseMixin):
matches = self.highstate.matches_whitelist(matches, "state2,state3")
self.assertEqual(matches, {"env": ["state2", "state3"]})
def test_show_state_usage(self):
# monkey patch sub methods
self.highstate.avail = {"base": ["state.a", "state.b", "state.c"]}
def test_compile_state_usage(self):
top = temp_file("top.sls", "base: {'*': [foo]}", self.state_tree_dir)
used_state = temp_file("foo.sls", "foo: test.nop", self.state_tree_dir)
unused_state = temp_file("bar.sls", "bar: test.nop", self.state_tree_dir)
def verify_tops(*args, **kwargs):
return []
with top, used_state, unused_state:
state_usage_dict = self.highstate.compile_state_usage()
def get_top(*args, **kwargs):
return None
def top_matches(*args, **kwargs):
return {"base": ["state.a", "state.b"]}
self.highstate.verify_tops = verify_tops
self.highstate.get_top = get_top
self.highstate.top_matches = top_matches
# get compile_state_usage() result
state_usage_dict = self.highstate.compile_state_usage()
self.assertEqual(state_usage_dict["base"]["count_unused"], 1)
self.assertEqual(state_usage_dict["base"]["count_used"], 2)
self.assertEqual(state_usage_dict["base"]["count_all"], 3)
self.assertEqual(state_usage_dict["base"]["used"], ["state.a", "state.b"])
self.assertEqual(state_usage_dict["base"]["unused"], ["state.c"])
self.assertEqual(state_usage_dict["base"]["count_unused"], 2)
self.assertEqual(state_usage_dict["base"]["count_used"], 1)
self.assertEqual(state_usage_dict["base"]["count_all"], 3)
self.assertEqual(state_usage_dict["base"]["used"], ["foo"])
self.assertEqual(state_usage_dict["base"]["unused"], ["bar", "top"])
def test_find_sls_ids_with_exclude(self):
"""