def test03(self):
        """Checking three actions in different depth levels."""

        if common.verbose:
            print('\n', '-=' * 30)
            print("Running %s.test03..." % self.__class__.__name__)

        # open the do/undo
        self.h5file.enable_undo()

        # Create a new group
        self.h5file.create_group('/', 'othergroup1', "Another group 1")
        self.h5file.create_group(
            '/othergroup1', 'othergroup2', "Another group 2")
        self.h5file.create_group(
            '/othergroup1/othergroup2', 'othergroup3', "Another group 3")

        # Now undo the past operation
        self.h5file.undo()

        # Check that othergroup* does not exist in the object tree
        self.assertTrue("/othergroup1" not in self.h5file)
        self.assertTrue("/othergroup1/othergroup2" not in self.h5file)
        self.assertTrue(
            "/othergroup1/othergroup2/othergroup3" not in self.h5file)

        # Redo the operation
        self.h5file.redo()

        # Check that othergroup* has come back to life in a sane state
        self.assertTrue("/othergroup1" in self.h5file)
        self.assertTrue("/othergroup1/othergroup2" in self.h5file)
        self.assertTrue("/othergroup1/othergroup2/othergroup3" in self.h5file)
        self.assertEqual(self.h5file.root.othergroup1._v_title,
                         "Another group 1")
        self.assertEqual(self.h5file.root.othergroup1.othergroup2._v_title,
                         "Another group 2")
        self.assertEqual(
            self.h5file.root.othergroup1.othergroup2.othergroup3._v_title,
            "Another group 3")
dataset/ETHPy150Open PyTables/PyTables/tables/tests/test_do_undo.py/CreateGroupTestCase.test03/original