From 64e7939122f9a0830c72de47a7b2c9b72761c3c2 Mon Sep 17 00:00:00 2001 From: Renato Alves Date: Tue, 28 Jul 2015 19:53:18 +0100 Subject: [PATCH] Test: Add another test for truncated STDIN --- test/delete.t | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/test/delete.t b/test/delete.t index 88b99b432..fd5ff1571 100755 --- a/test/delete.t +++ b/test/delete.t @@ -90,16 +90,38 @@ class TestDelete(TestCase): """Delete prompt with closed STDIN causes infinite loop and floods stdout (single)""" 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): """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("add foo1") self.t("add foo2") 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=""): """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(err), 500) - # Finally ensure the process exited successfully - self.assertEqual(code, 0) + return code, out, err if __name__ == "__main__":