Add some compat tests for removing refs during push.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 4 Sep 2013 22:17:07 +0000 (23:17 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Wed, 4 Sep 2013 22:17:07 +0000 (23:17 +0100)
NEWS
dulwich/tests/compat/server_utils.py

diff --git a/NEWS b/NEWS
index c34ee96abe0f6844b3ebfad823a2a6b3f5a4476d..f73eacc0f6ae58ccdd5136eec4da42af1c91196c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,8 @@
 
   * Enforce determine_wants returning an empty list rather than None. (Fabien Boucher, Jelmer Vernooij)
 
+  * In the server, support pushes just removing refs. (Fabien Boucher, Jelmer Vernooij)
+
  IMPROVEMENTS
 
   * Support passing a single revision to BaseRepo.get_walker() rather than a list of revisions. 
index f281202a3f3900579cd6032f0c2c00ec9f04f4bd..50fd46dce2ab4bcc3e7484d881a375934109c5ae 100644 (file)
@@ -69,6 +69,28 @@ class ServerTests(object):
                         cwd=self._new_repo.path)
         self.assertReposEqual(self._old_repo, self._new_repo)
 
+    def test_push_to_dulwich_no_op(self):
+        self._old_repo = import_repo('server_old.export')
+        self._new_repo = import_repo('server_old.export')
+        self.assertReposEqual(self._old_repo, self._new_repo)
+        port = self._start_server(self._old_repo)
+
+        run_git_or_fail(['push', self.url(port)] + self.branch_args(),
+                        cwd=self._new_repo.path)
+        self.assertReposEqual(self._old_repo, self._new_repo)
+
+    def test_push_to_dulwich_remove_branch(self):
+        self._old_repo = import_repo('server_old.export')
+        self._new_repo = import_repo('server_old.export')
+        self.assertReposEqual(self._old_repo, self._new_repo)
+        port = self._start_server(self._old_repo)
+
+        run_git_or_fail(['push', self.url(port), ":master"],
+                        cwd=self._new_repo.path)
+
+        self.assertEquals(
+            self._old_repo.get_refs().keys(), ["refs/heads/branch"])
+
     def test_fetch_from_dulwich(self):
         self.import_repos()
         self.assertReposNotEqual(self._old_repo, self._new_repo)