def tracked_kickstart_elements_tracking_test(self): """Test tracking of elements.""" appended_elements = [ self._element1, self._element2, self._element3, self._element4, self._element5, self._element6, self._element7 ] elements = TrackedKickstartElements() for element in appended_elements: elements.append(element) processed_elements = elements.get_and_process_elements( commands=["network"], sections=["pre"], addons=["pony"]) unprocessed_elements = elements.unprocessed_elements # still keeping order of elements self.assertEqual(unprocessed_elements, [self._element5, self._element6, self._element7]) # nothing is missing self.assertEqual( set(elements.all_elements), set.union(set(processed_elements), set(unprocessed_elements))) # elements once processed remain processed if you just get them elements.get_elements(commands=["network"], sections=["pre"], addons=["pony"]) self.assertEqual(elements.unprocessed_elements, unprocessed_elements) # processing some more elements - firewall command firewall_elements = elements.get_and_process_elements( commands=["firewall"]) self.assertEqual( set(elements.unprocessed_elements), set.difference(set(unprocessed_elements), set(firewall_elements))) self.assertEqual(elements.unprocessed_elements, [self._element6, self._element7])
def tracked_kickstart_elements_filter_test(self): """Test filtering of elements.""" expected_elements = [ self._element1, self._element2, self._element3, self._element4, self._element5, self._element6, self._element7 ] elements = TrackedKickstartElements() for element in expected_elements: elements.append(element) self.assertEqual(elements.all_elements, expected_elements) # filtering network_commands = elements.get_elements(commands=["network"]) self.assertEqual(network_commands, [self._element2, self._element3]) pony_addon = elements.get_elements(addons=["pony"]) self.assertEqual(pony_addon, [self._element4]) pre_sections = elements.get_elements(sections=["pre"]) self.assertEqual(pre_sections, [self._element1]) # addon is not considered a section addon_sections = elements.get_elements(sections=["addon"]) self.assertEqual(addon_sections, []) mixed_elements = elements.get_elements(commands=["network"], sections=["pre", "post"], addons=["pony"]) self.assertEqual(mixed_elements, [ self._element1, self._element2, self._element3, self._element4, self._element7 ]) # nothing required - nothing got self.assertEqual(elements.get_elements(), [])