def testPopError(self):
        def watcher(item):
            return

        l = WatchedList()
        l.watch(watcher)
        self.assertRaises(ValueError, l.remove, 1)
    def testInsert(self):
        def watcher(item):
            assert item == 'test'

        l = WatchedList()
        l.watch(watcher)
        l.insert(0, 'test')
    def testAppend(self):
        def watcher(item):
            assert item == 'test'

        l = WatchedList()
        l.watch(watcher)
        l.append('test')
    def testUnwatch(self):
        def watcher(item):
            return

        l = WatchedList()
        watcher_proc_id = l.watch(watcher)
        l.unwatch(watcher_proc_id)
        assert watcher_proc_id not in l.watch_procs
    def testPop(self):
        def watcher(item):
            assert item == 'test'

        l = WatchedList()
        l.append('test2')
        l.append('test3')
        l.insert(1, 'test')
        l.watch(watcher)
        l.pop(1)
    def testRemove(self):
        def watcher(item):
            assert item == 'test'

        l = WatchedList()
        l.append('test')
        l.append('test2')
        l.watch(watcher)
        len = l.__len__()
        l.remove('test')
    def testReverse(self):
        def watcher(item):
            assert l[2] == 1
            assert l[1] == 2
            assert l[0] == 3

        l = WatchedList()
        l.append(1)
        l.append(2)
        l.append(3)
        l.watch(watcher)
        l.reverse()
    def testSort(self):
        def watcher(item):
            for i in range(item.__len__() - 1):
                assert item[i] <= item[i + 1]

        l = WatchedList()
        l.append(2)
        l.append(4)
        l.append(1)
        l.append(3)
        l.watch(watcher)
        l.sort()