~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/testhashcache.py

  • Committer: Martin Pool
  • Date: 2005-07-07 10:31:36 UTC
  • Revision ID: mbp@sourcefrog.net-20050707103135-9b4d911d8df6e880
- fix pwk help

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
    
33
33
 
34
34
 
35
 
class TestHashCache(InTempDir):
36
 
    """Functional tests for hashcache"""
 
35
class TestStatCache(InTempDir):
 
36
    """Functional tests for statcache"""
37
37
    def runTest(self):
38
38
        from bzrlib.hashcache import HashCache
39
39
        import os
40
40
        import time
41
41
 
42
 
        # make a dummy bzr directory just to hold the cache
43
 
        os.mkdir('.bzr')
44
42
        hc = HashCache('.')
45
43
 
46
44
        file('foo', 'wb').write('hello')
77
75
        file('foo', 'wb').write('g00dbye')
78
76
        self.assertEquals(hc.get_sha1('foo'),
79
77
                          sha1('g00dbye'))
80
 
 
81
 
        file('foo2', 'wb').write('other file')
82
 
        self.assertEquals(hc.get_sha1('foo2'), sha1('other file'))
83
 
 
84
 
        os.remove('foo2')
85
 
        self.assertEquals(hc.get_sha1('foo2'), None)
86
 
 
87
 
        file('foo2', 'wb').write('new content')
88
 
        self.assertEquals(hc.get_sha1('foo2'), sha1('new content'))
 
78
        
 
79
        # this is not quite guaranteed to be true; we might have
 
80
        # crossed a 1s boundary before
 
81
        self.assertEquals(hc.danger_count, 1)
89
82
 
90
83
        self.assertEquals(hc.get_sha1('subdir'), None)
91
84
 
92
 
        # it's likely neither are cached at the moment because they 
93
 
        # changed recently, but we can't be sure
94
 
        pause()
95
 
 
96
 
        # should now be safe to cache it if we reread them
97
 
        self.assertEquals(hc.get_sha1('foo'), sha1('g00dbye'))
98
 
        self.assertEquals(len(hc._cache), 1)
99
 
        self.assertEquals(hc.get_sha1('foo2'), sha1('new content'))
100
 
        self.assertEquals(len(hc._cache), 2)
101
 
 
102
 
        # write out, read back in and check that we don't need to
103
 
        # re-read any files
104
 
        hc.write()
105
 
        del hc
106
 
 
107
 
        hc = HashCache('.')
108
 
        hc.read()
109
 
 
110
 
        self.assertEquals(len(hc._cache), 2)
111
 
        self.assertEquals(hc.get_sha1('foo'), sha1('g00dbye'))
112
 
        self.assertEquals(hc.hit_count, 1)
113
 
        self.assertEquals(hc.miss_count, 0)
114
 
        self.assertEquals(hc.get_sha1('foo2'), sha1('new content'))
115
 
 
116
 
        
117
 
 
118
 
        
119
 
 
 
85
 
 
86
 
 
87
TEST_CLASSES = [
 
88
    TestStatCache,
 
89
    ]