def test_save_elements_count_limit(self): entry = Problems2Entry(self.bus, self.p2_entry_path) too_many_elements = dict() for i in range(get_dbus_limit_elements_count() + 1): too_many_elements[str(i)] = str(i) entry.SaveElements(too_many_elements, 0) elements = entry.getproperty("Elements") saved = False ignored = False for i in range(get_dbus_limit_elements_count() + 1): if str(i) in elements: saved = True else: ignored = True self.assertTrue(saved, "SaveElements: saved as many as possible") self.assertTrue(ignored, "SaveElements: did not save elements over limit") for i in range(get_dbus_limit_elements_count() + 1): key = str(get_dbus_limit_elements_count() + 1 + i) ed = {key: str(i + 1)} try: entry.SaveElements(ed, 0) data = entry.ReadElements([key], 0) except dbus.exceptions.DBusException as ex: print(key) raise ex self.assertNotIn(key, data, "SaveElements: did not create new elements") overwrites = False for i in range(get_dbus_limit_elements_count() + 1): ed = {str(i): str(i + 2)} try: entry.SaveElements(ed, 0) overwrites = True except dbus.exceptions.DBusException as ex: self.assertEqual( "org.freedesktop.DBus.Error.LimitsExceeded: " "Too many elements", str(ex)) break self.assertTrue(overwrites, "SaveElements allows to overwrite element " "despite Elements count limit")
def test_new_problem_elements_count_limit(self): too_many_elements = dict() for i in range(get_dbus_limit_elements_count() + 1): too_many_elements[str(i)] = str(i) task_path = self.p2.NewProblem(too_many_elements, 0x1) self.assertRaisesProblems2Exception( "Failed to create " "new problem directory: Too many elements", wait_for_task_new_problem, self, self.bus, task_path)