Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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")
Beispiel #4
0
    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")