summaryrefslogtreecommitdiff
path: root/bzrlib/tests/commands/test_revert.py
diff options
context:
space:
mode:
Diffstat (limited to 'bzrlib/tests/commands/test_revert.py')
-rw-r--r--bzrlib/tests/commands/test_revert.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/bzrlib/tests/commands/test_revert.py b/bzrlib/tests/commands/test_revert.py
new file mode 100644
index 0000000..c1ab41a
--- /dev/null
+++ b/bzrlib/tests/commands/test_revert.py
@@ -0,0 +1,61 @@
+# Copyright (C) 2010 Canonical Ltd
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+import os
+from bzrlib import (
+ branch,
+ builtins,
+ errors,
+ lock,
+ )
+from bzrlib.tests import (
+ transport_util,
+ TestCaseInTempDir,
+ )
+
+
+class TestRevert(TestCaseInTempDir):
+
+ def setUp(self):
+ super(TestRevert, self).setUp()
+
+ def test_revert_tree_write_lock_and_branch_read_lock(self):
+
+ # install lock hooks to find out about cmd_revert's locking actions
+ locks_acquired = []
+ locks_released = []
+ lock.Lock.hooks.install_named_hook('lock_acquired',
+ locks_acquired.append, None)
+ lock.Lock.hooks.install_named_hook('lock_released',
+ locks_released.append, None)
+
+ # execute the revert command (There is nothing to actually revert,
+ # but locks are acquired either way.)
+ revert = builtins.cmd_revert()
+ revert.run()
+
+ # make sure that only one lock is acquired and released.
+ self.assertLength(1, locks_acquired)
+ self.assertLength(1, locks_released)
+
+ # make sure that the nonces are the same, since otherwise
+ # this would not be the same lock.
+ self.assertEqual(locks_acquired[0].details, locks_released[0].details)
+
+ # make sure that the locks are checkout locks.
+ self.assertEndsWith(locks_acquired[0].lock_url, "/checkout/lock")
+ self.assertEndsWith(locks_released[0].lock_url, "/checkout/lock")
+