Index: tests/scm_unittest.py |
diff --git a/tests/scm_unittest.py b/tests/scm_unittest.py |
index 48882f95be94a177c522f78ef6bd5c7b6ef94bac..9089bbe20bbbaa74bac8ec1a4ca9e8a899590ef9 100755 |
--- a/tests/scm_unittest.py |
+++ b/tests/scm_unittest.py |
@@ -10,6 +10,7 @@ |
# Fixes include path. |
from super_mox import SuperMoxTestBase |
+import fake_repos |
import scm |
@@ -240,6 +241,54 @@ class SVNTestCase(BaseSCMTestCase): |
self.assertEquals(info, []) |
+class RealSvnTest(fake_repos.FakeReposTestBase): |
+ # Tests that work with a checkout. |
+ def setUp(self): |
+ super(RealSvnTest, self).setUp() |
+ self.FAKE_REPOS.setUpSVN() |
+ self.svn_root = scm.os.path.join(self.root_dir, 'base') |
+ scm.SVN.Capture( |
+ ['checkout', self.svn_base + 'trunk/third_party', 'base'], |
+ cwd=self.root_dir) |
+ self.tree = self.mangle_svn_tree(('trunk/third_party@-1', ''),) |
+ |
+ def _capture(self, cmd, **kwargs): |
+ kwargs.setdefault('cwd', self.svn_root) |
+ return scm.SVN.Capture(cmd, **kwargs) |
+ |
+ def testCheckout(self): |
+ # Checkout and verify the tree. |
+ self.assertTree(self.tree, self.svn_root) |
+ |
+ def testRevert(self): |
+ # Mess around and make sure revert works for all corner cases. |
+ # - svn add a file |
+ # - svn add a file and delete it |
+ # - Delete a file |
+ # - svn delete a file |
+ # - svn move a directory and svn rename files in it |
+ self._capture(['move', 'foo', 'foo2']) |
+ self._capture( |
+ ['move', |
+ scm.os.path.join('foo2', 'origin'), |
+ scm.os.path.join('foo2', 'o')]) |
+ scm.os.remove(scm.os.path.join(self.svn_root, 'origin')) |
+ self._capture( |
+ ['propset', 'foo', 'bar', |
+ scm.os.path.join(self.svn_root, 'prout', 'origin')]) |
+ fake_repos.rmtree(scm.os.path.join(self.svn_root, 'prout')) |
+ with open(scm.os.path.join(self.svn_root, 'faa'), 'w') as f: |
+ f.write('eh') |
+ with open(scm.os.path.join(self.svn_root, 'faala'), 'w') as f: |
+ f.write('oh') |
+ self._capture(['add', scm.os.path.join(self.svn_root, 'faala')]) |
+ |
+ scm.SVN.Revert(self.svn_root) |
+ self._capture(['update', '--revision', 'base']) |
+ |
+ self.assertTree(self.tree, self.svn_root) |
+ |
+ |
if __name__ == '__main__': |
import unittest |
unittest.main() |