Rev 12: Get log works now (returns empty log for now) in file:///home/jelmer/bzr/bzrsvnserve/

Jelmer Vernooij jelmer at samba.org
Mon Jan 22 14:49:16 GMT 2007


------------------------------------------------------------
revno: 12
revision-id: jelmer at samba.org-20070122144913-r38748l092dto74c
parent: jelmer at samba.org-20070122142330-jg1h0cci78pnm5zc
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: bzrsvnserve
timestamp: Mon 2007-01-22 15:49:13 +0100
message:
  Get log works now (returns empty log for now)
modified:
  svnserver.py                   svnserver.py-20061015150253-0jjovnw1ax00rjlb-1
  tests/test_server.py           test_server.py-20070122114402-zcwhr4cxc67jvakf-1
=== modified file 'svnserver.py'
--- a/svnserver.py	2007-01-22 14:23:30 +0000
+++ b/svnserver.py	2007-01-22 14:49:13 +0000
@@ -34,25 +34,34 @@
         self._stop = False
 
     def send_greeting(self):
-        self.send_msg([literal("success"), 
-            [SVN_MAJOR_VERSION, SVN_MINOR_VERSION, [literal("ANONYMOUS")], 
-                        [ ] ]])
+        self.send_success(
+            SVN_MAJOR_VERSION, SVN_MINOR_VERSION, [literal("ANONYMOUS")], [])
 
     def send_mechs(self):
-        self.send_msg([literal("success"), [[literal("ANONYMOUS")], ""]])
+        self.send_success([literal("ANONYMOUS")], "")
+
+    def send_failure(self, *contents):
+        self.send_msg([literal("failure"), list(contents)])
+
+    def send_success(self, *contents):
+        self.send_msg([literal("success"), list(contents)])
+
+    def send_unknown(self, cmd):
+        self.send_failure([210001, "Unknown command '%s'" % cmd, __file__, \
+                          52])
 
     def get_latest_rev(self):
-        self.send_msg([literal("success"), [[], ""]])
-        self.send_msg([literal("success"), [self.branch.revno()]])
+        self.send_success([], "")
+        self.send_success(self.branch.revno())
 
     def log(self, target_path, start_rev, end_rev, changed_paths, 
             strict_node, limit=None):
-        self.send_msg([literal("success"), [], ""])
+        self.send_success([], "")
         self.send_msg(literal("done"))
-        self.send_msg([literal("success"), []])
+        self.send_success()
 
     def reparent(self, parent):
-        pass
+        self.send_success()
 
     commands = {
             "get-latest-rev": get_latest_rev,
@@ -100,19 +109,21 @@
 
         (mech, args) = self.recv_msg()
         # TODO: Proper authentication
-        self.send_msg([literal("success"), []])
+        self.send_success()
 
         import bzrlib.urlutils as urlutils
         (rooturl, location) = urlutils.split(url)
 
         self.branch, branch_path = Branch.open_containing(os.path.join(self.rootdir, location))
-        self.send_msg([literal("success"), [self.get_branch_uuid(), 
-            rooturl]])
+        self.send_success(self.get_branch_uuid(), rooturl)
 
         # Expect:
         while not self._stop:
             ( cmd, args ) = self.recv_msg()
-            self.commands[cmd](self, *args)
+            if not self.commands.has_key(cmd):
+                self.send_unknown(cmd)
+            else:
+                self.commands[cmd](self, *args)
 
     def close(self):
         self._stop = True

=== modified file 'tests/test_server.py'
--- a/tests/test_server.py	2007-01-22 14:23:30 +0000
+++ b/tests/test_server.py	2007-01-22 14:49:13 +0000
@@ -16,6 +16,8 @@
 
 from bzrlib.bzrdir import BzrDir
 from bzrlib.tests import TestCaseInTempDir
+from bzrlib.trace import mutter
+
 from marshall import literal, MarshallError, marshall, unmarshall
 from svnserver import SVNServer
 
@@ -39,6 +41,14 @@
         self.assertEqual("( success ( 1 2 ( ANONYMOUS ) ( ) ) ) ",
                          self.outstr.read())
 
+    def test_unknown_cmd(self):
+        self.server.send_unknown("foobar")
+        self.outstr.seek(0)
+        msg = unmarshall(self.outstr.read())[1]
+        self.assertEqual("failure", msg[0])
+        self.assertEqual(210001, msg[1][0][0])
+        self.assertEqual("Unknown command 'foobar'", msg[1][0][1])
+
     def test_get_uuid(self):
         self.server.branch = self.branch
         self.branch.get_config().set_user_option('svn_uuid', 
@@ -86,3 +96,8 @@
 
     def test_get_latest_rev(self):
         self.assertEqual(0, svn.ra.get_latest_revnum(self.ra))
+
+    def test_get_log(self):
+        def rcvr(orig_paths, rev, author, date, message, pool):
+            pass
+        svn.ra.get_log(self.ra, ["/"], 0, 0, 0, True, True, rcvr, self.pool)




More information about the bazaar-commits mailing list