def testBase(self): """MultipleElement base methods""" elem = MultipleElement(SimpleElement(check='string')) # Default self.assertEqual(elem.get([]), []) # First add() elem.add("3") self.assertEqual(elem.get(), ["3"]) self.assertEqual(elem.content(), ["3"]) self.assertEqual(elem[0], "3") self.assertEqual(str(elem), "3") self.assertEqual(len(elem), 1) # Second add() elem.add("5") elem.add("7") self.assertEqual(elem.get(), ["3", "5", "7"]) self.assertEqual(elem.content(), ["3", "5", "7"]) self.assertEqual(elem[1], "5") self.assertEqual(str(elem), "3 5 7") self.assertEqual(len(elem), 3) # Remove an item del elem[1] self.assertEqual(elem.get(), ["3", "7"]) self.assertEqual(len(elem), 2) elem.remove("3") self.assertEqual(elem.get(), ["7"]) self.assertEqual(len(elem), 1) self.assertRaises(KeyError, elem.remove, "6") # replace() elem.replace("12") self.assertEqual(elem.get(), ["12"]) # clear() elem.clear() self.assertEqual(len(elem), 0) # parse() elem.parse("4") self.assertEqual(elem.get(), ["4"]) self.assertEqual(str(elem), "4") self.assertEqual(len(elem), 1) # __eq__ other = elem.emptycopy() self.assertNotEqual(elem, other) other.add("4") self.assertEqual(elem, other)
def testBase(self): """MultipleElement base methods""" elem = MultipleElement(SimpleElement(check='string')) # Default self.assertEqual(elem.get([]), []) # First add() elem.add("3") self.assertEqual(elem.get(), ["3"]) self.assertEqual(elem.content(), ["3"]) self.assertEqual(elem[0], "3") self.assertEqual(str(elem), "3") self.assertEqual(len(elem), 1) # Second add() elem.add("5") elem.add("7") self.assertEqual(elem.get(), ["3", "5", "7"]) self.assertEqual(elem.content(), ["3", "5", "7"]) self.assertEqual(elem[1], "5") self.assertEqual(str(elem), "3\n5\n7") self.assertEqual(len(elem), 3) # Remove an item del elem[1] self.assertEqual(elem.get(), ["3", "7"]) self.assertEqual(len(elem), 2) elem.remove("3") self.assertEqual(elem.get(), ["7"]) self.assertEqual(len(elem), 1) self.assertRaises(KeyError, elem.remove, "6") # replace() elem.replace("12") self.assertEqual(elem.get(), ["12"]) # clear() elem.clear() self.assertEqual(len(elem), 0) # parse() elem.parse("4") self.assertEqual(elem.get(), ["4"]) self.assertEqual(str(elem), "4") self.assertEqual(len(elem), 1) # __eq__ other = elem.emptycopy() self.assertNotEqual(elem, other) other.add("4") self.assertEqual(elem, other)
def test_str_fold(self): """MultipleElement uses range-based folding when format to str""" elem = MultipleElement(SimpleElement(check='string')) # By default, no folding is done when cast to str elem.add('3') elem.add('4') elem.add('5') self.assertEqual(str(elem), "3\n4\n5") # With enabled folding elem.fold = True self.assertEqual(str(elem), '[3-5]') # Folding keeps order elem.clear() elem.add('3') elem.add('5') elem.add('4') self.assertEqual(str(elem), "[3,5]\n4")
def test_str_fold(self): """MultipleElement uses range-based folding when format to str""" elem = MultipleElement(SimpleElement(check='string')) # By default, no folding is done when cast to str elem.add('3') elem.add('4') elem.add('5') self.assertEqual(str(elem), "3\n4\n5") # With enabled folding elem.fold = True self.assertEqual(str(elem), '[3-5]') # Folding keeps order elem.clear() elem.add('3') elem.add('5') elem.add('4') self.assertEqual(str(elem), "[3,5]\n4")