def testValidEscapes(self): self.assertEqual( comp_ui._PromptLen("\x01\033[01;34m\x02user\x01\033[00m\x02 >"), len("user >")) self.assertEqual(comp_ui._PromptLen("\x01\x02\x01\x02\x01\x02"), 0) self.assertEqual( comp_ui._PromptLen("\x01\x02 hi \x01hi\x02 \x01\x02 hello"), len(" hi hello"))
def testControlCharacters(self): self.assertEqual(comp_ui._PromptLen("\xef"), 1) self.assertEqual(comp_ui._PromptLen("\x03\x05"), 2)
def testNoEscapes(self): for prompt in ["> ", "osh>", "[[]][[]][][]]][["]: self.assertEqual(comp_ui._PromptLen(prompt), len(prompt))
def testNewline(self): self.assertEqual(comp_ui._PromptLen("\n"), 0) self.assertEqual(comp_ui._PromptLen("abc\ndef"), 3) self.assertEqual(comp_ui._PromptLen(""), 0)