def test_reverse_single_notification(self):
     # Regression test for double notification.
     notifier = unittest.mock.Mock()
     tl = TraitList([1, 2, 3, 4, 5], notifiers=[notifier])
     notifier.assert_not_called()
     tl.reverse()
     self.assertEqual(notifier.call_count, 1)
    def test_reverse_empty_list(self):
        tl = TraitList([],
                       item_validator=int_item_validator,
                       notifiers=[self.notification_handler])

        tl.reverse()
        self.assertIsNone(self.index)
        self.assertIsNone(self.removed)
        self.assertIsNone(self.added)
    def test_reverse(self):
        tl = TraitList([1, 2, 3, 4, 5],
                       item_validator=int_item_validator,
                       notifiers=[self.notification_handler])

        tl.reverse()
        self.assertEqual(tl, [5, 4, 3, 2, 1])
        self.assertEqual(self.index, 0)
        self.assertEqual(self.removed, [1, 2, 3, 4, 5])
        self.assertEqual(self.added, [5, 4, 3, 2, 1])