mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-24 18:06:42 +02:00
Test: Add another test for truncated STDIN
This commit is contained in:
parent
fe23510c51
commit
64e7939122
1 changed files with 25 additions and 4 deletions
|
@ -90,16 +90,38 @@ class TestDelete(TestCase):
|
||||||
"""Delete prompt with closed STDIN causes infinite loop and floods stdout (single)"""
|
"""Delete prompt with closed STDIN causes infinite loop and floods stdout (single)"""
|
||||||
self.t("add foo1")
|
self.t("add foo1")
|
||||||
|
|
||||||
self._validate_prompt_loop(input="y\n")
|
# Would expect 1 yes via input none sent
|
||||||
|
code, out, err = self._validate_prompt_loop(input="")
|
||||||
|
|
||||||
|
self.assertIn("Task not deleted", out)
|
||||||
|
self.assertIn("Deleted 0 tasks", out)
|
||||||
|
|
||||||
|
# If command was aborted, exit code should be 1
|
||||||
|
self.assertEqual(code, 1)
|
||||||
|
|
||||||
|
def test_delete_multiple_prompt_loop(self):
|
||||||
|
"""Delete prompt with closed STDIN causes infinite loop and floods stdout (multiple)"""
|
||||||
|
self.t("add foo1")
|
||||||
|
self.t("add foo2")
|
||||||
|
|
||||||
|
# Would expect 2 yes via input only 1 sent
|
||||||
|
code, out, err = self._validate_prompt_loop(input="y\n")
|
||||||
|
self.assertEqual(code, 0)
|
||||||
|
|
||||||
def test_delete_bulk_prompt_loop(self):
|
def test_delete_bulk_prompt_loop(self):
|
||||||
"""Delete prompt with closed STDIN causes infinite loop and floods stdout (bulk)"""
|
"""Delete prompt with closed STDIN causes infinite loop and floods stdout (bulk)"""
|
||||||
|
self.t.config("confirmation", "off")
|
||||||
|
# bulk is applied when confirmation is disabled
|
||||||
self.t.config("bulk", "2")
|
self.t.config("bulk", "2")
|
||||||
|
|
||||||
self.t("add foo1")
|
self.t("add foo1")
|
||||||
self.t("add foo2")
|
self.t("add foo2")
|
||||||
self.t("add foo3")
|
self.t("add foo3")
|
||||||
|
|
||||||
self._validate_prompt_loop(input="y\n")
|
# Would expect 3 yes via input only 2 sent
|
||||||
|
code, out, err = self._validate_prompt_loop(input="y\ny\n")
|
||||||
|
|
||||||
|
self.assertEqual(code, 0)
|
||||||
|
|
||||||
def _validate_prompt_loop(self, input=""):
|
def _validate_prompt_loop(self, input=""):
|
||||||
"""Helper method to check if task flooded stream on closed STDIN"""
|
"""Helper method to check if task flooded stream on closed STDIN"""
|
||||||
|
@ -115,8 +137,7 @@ class TestDelete(TestCase):
|
||||||
self.assertLessEqual(len(out), 500)
|
self.assertLessEqual(len(out), 500)
|
||||||
self.assertLessEqual(len(err), 500)
|
self.assertLessEqual(len(err), 500)
|
||||||
|
|
||||||
# Finally ensure the process exited successfully
|
return code, out, err
|
||||||
self.assertEqual(code, 0)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue