From 512fe3ad62d0ad9456e624c2aac8be4f591310c5 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@lothar.com>
Date: Wed, 18 Nov 2009 08:42:38 -0800
Subject: [PATCH] ImmutableDirectoryURIVerifier: fix verifycap handling

---
 src/allmydata/test/test_uri.py | 12 +++++++++---
 src/allmydata/uri.py           |  1 +
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/allmydata/test/test_uri.py b/src/allmydata/test/test_uri.py
index 9a2143ef..14260616 100644
--- a/src/allmydata/test/test_uri.py
+++ b/src/allmydata/test/test_uri.py
@@ -362,12 +362,18 @@ class NewDirnode(unittest.TestCase):
 
         u2_verifier = u2.get_verify_cap()
         self.failUnless(isinstance(u2_verifier,
-                                   uri.ImmutableDirectoryURIVerifier), u2_verifier)
+                                   uri.ImmutableDirectoryURIVerifier),
+                        u2_verifier)
         self.failUnless(IVerifierURI.providedBy(u2_verifier))
+        u2vs = u2_verifier.to_string()
+        # URI:DIR2-CHK-Verifier:$key:$ueb:$k:$n:$size
+        self.failUnless(u2vs.startswith("URI:DIR2-CHK-Verifier:"), u2vs)
         u2_verifier_fileuri = u2_verifier.get_filenode_cap()
         self.failUnless(IVerifierURI.providedBy(u2_verifier_fileuri))
-        self.failUnlessEqual(u2_verifier_fileuri.to_string(),
-                             fnuri.get_verify_cap().to_string())
+        u2vfs = u2_verifier_fileuri.to_string()
+        # URI:CHK-Verifier:$key:$ueb:$k:$n:$size
+        self.failUnlessEqual(u2vfs, fnuri.get_verify_cap().to_string())
+        self.failUnlessEqual(u2vs[len("URI:DIR2-"):], u2vfs[len("URI:"):])
         self.failUnless(str(u2_verifier))
 
     def test_literal(self):
diff --git a/src/allmydata/uri.py b/src/allmydata/uri.py
index 83d80f5d..7c0bc10f 100644
--- a/src/allmydata/uri.py
+++ b/src/allmydata/uri.py
@@ -115,6 +115,7 @@ class CHKFileURI(_BaseURI):
 class CHKFileVerifierURI(_BaseURI):
     implements(IVerifierURI)
 
+    BASE_STRING='URI:CHK-Verifier:'
     STRING_RE=re.compile('^URI:CHK-Verifier:'+BASE32STR_128bits+':'+
                          BASE32STR_256bits+':'+NUMBER+':'+NUMBER+':'+NUMBER)
     HUMAN_RE=re.compile('^'+OPTIONALHTTPLEAD+'URI'+SEP+'CHK-Verifier'+SEP+
-- 
2.45.2