]> arthur.barton.de Git - bup.git/commitdiff
tclient.py: add some additional tests that objcache.refresh() is called.
authorAvery Pennarun <apenwarr@gmail.com>
Fri, 18 Feb 2011 05:35:39 +0000 (21:35 -0800)
committerAvery Pennarun <apenwarr@gmail.com>
Fri, 18 Feb 2011 05:36:29 +0000 (21:36 -0800)
...which it is, so no bugs were fixed here.  Aneurin is sitll exposing a bug
somehow though.

Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
lib/bup/git.py
lib/bup/t/tclient.py

index 7d2d2ef2a4820cd952f1838d9cf598e099e1e1c2..79df185d107d166559476dfbdd1c06d93738793b 100644 (file)
@@ -450,7 +450,7 @@ def _make_objcache():
     return PackIdxList(repo('objects/pack'))
 
 class PackWriter:
-    """Writes Git objects insid a pack file."""
+    """Writes Git objects inside a pack file."""
     def __init__(self, objcache_maker=_make_objcache):
         self.count = 0
         self.outbytes = 0
index 68f4fb3948968a8f90967618d6cf7ff44a90ddae..85dd8b211eaf18ad9773cd69092f7d7992852e0f 100644 (file)
@@ -50,10 +50,16 @@ def test_multiple_suggestions():
     c = client.Client(bupdir, create=True)
     WVPASSEQ(len(glob.glob(c.cachedir+IDX_PAT)), 0)
     rw = c.new_packwriter()
-    rw.new_blob(s1)
-    rw.new_blob(s2)
+    s1sha = rw.new_blob(s1)
+    WVPASS(rw.exists(s1sha))
+    s2sha = rw.new_blob(s2)
     # This is a little hacky, but ensures that we test the code under test
-    while len(glob.glob(c.cachedir+IDX_PAT)) < 2 and not c.conn.has_input(): pass
+    while (len(glob.glob(c.cachedir+IDX_PAT)) < 2 and
+           not c.conn.has_input()):
+        pass
+    rw.new_blob(s2)
+    WVPASS(rw.objcache.exists(s1sha))
+    WVPASS(rw.objcache.exists(s2sha))
     rw.new_blob(s3)
     WVPASSEQ(len(glob.glob(c.cachedir+IDX_PAT)), 2)
     rw.close()
@@ -88,15 +94,30 @@ def test_midx_refreshing():
     os.environ['BUP_DIR'] = bupdir = 'buptest_tmidx.tmp'
     subprocess.call(['rm', '-rf', bupdir])
     git.init_repo(bupdir)
-    lw = git.PackWriter()
-    lw.new_blob(s1)
-    lw.breakpoint()
-    lw.new_blob(s2)
-    del lw
+    c = client.Client(bupdir, create=True)
+    rw = c.new_packwriter()
+    rw.new_blob(s1)
+    p1base = rw.breakpoint()
+    p1name = os.path.join(c.cachedir, p1base)
+    s1sha = rw.new_blob(s1)  # should not be written; it's already in p1
+    s2sha = rw.new_blob(s2)
+    p2base = rw.close()
+    p2name = os.path.join(c.cachedir, p2base)
+    del rw
+    
     pi = git.PackIdxList(bupdir + '/objects/pack')
     WVPASSEQ(len(pi.packs), 2)
     pi.refresh()
     WVPASSEQ(len(pi.packs), 2)
+    WVPASSEQ(sorted([os.path.basename(i.name) for i in pi.packs]),
+             sorted([p1base, p2base]))
+    
+    p1 = git.open_idx(p1name)
+    WVPASS(p1.exists(s1sha))
+    p2 = git.open_idx(p2name)
+    WVFAIL(p2.exists(s1sha))
+    WVPASS(p2.exists(s2sha))
+    
     subprocess.call([bupmain, 'midx', '-f'])
     pi.refresh()
     WVPASSEQ(len(pi.packs), 1)
@@ -105,6 +126,7 @@ def test_midx_refreshing():
     pi.refresh(skip_midx=False)
     WVPASSEQ(len(pi.packs), 1)
 
+
 @wvtest
 def test_remote_parsing():
     tests = (