(self)
| 270 | self.fail("KeyboardInterrupt not raised.") |
| 271 | |
| 272 | def test_prompt_length(self): |
| 273 | # Handles simple ASCII prompt |
| 274 | ps1 = ">>> " |
| 275 | prompt, l = Reader.process_prompt(ps1) |
| 276 | self.assertEqual(prompt, ps1) |
| 277 | self.assertEqual(l, 4) |
| 278 | |
| 279 | # Handles ANSI escape sequences |
| 280 | ps1 = "\033[0;32m>>> \033[0m" |
| 281 | prompt, l = Reader.process_prompt(ps1) |
| 282 | self.assertEqual(prompt, "\033[0;32m>>> \033[0m") |
| 283 | self.assertEqual(l, 4) |
| 284 | |
| 285 | # Handles ANSI escape sequences bracketed in \001 .. \002 |
| 286 | ps1 = "\001\033[0;32m\002>>> \001\033[0m\002" |
| 287 | prompt, l = Reader.process_prompt(ps1) |
| 288 | self.assertEqual(prompt, "\033[0;32m>>> \033[0m") |
| 289 | self.assertEqual(l, 4) |
| 290 | |
| 291 | # Handles wide characters in prompt |
| 292 | ps1 = "樂>> " |
| 293 | prompt, l = Reader.process_prompt(ps1) |
| 294 | self.assertEqual(prompt, ps1) |
| 295 | self.assertEqual(l, 5) |
| 296 | |
| 297 | # Handles wide characters AND ANSI sequences together |
| 298 | ps1 = "\001\033[0;32m\002樂>\001\033[0m\002> " |
| 299 | prompt, l = Reader.process_prompt(ps1) |
| 300 | self.assertEqual(prompt, "\033[0;32m樂>\033[0m> ") |
| 301 | self.assertEqual(l, 5) |
| 302 | |
| 303 | def test_completions_updated_on_key_press(self): |
| 304 | namespace = {"itertools": itertools} |
nothing calls this directly
no test coverage detected