~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_hashcache.py

Merge bzr.ab.integration

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
from bzrlib.errors import BzrError
23
23
from bzrlib.hashcache import HashCache
24
 
from bzrlib.tests import TestCaseInTempDir
 
24
from bzrlib.tests import TestCaseInTempDir, TestSkipped
25
25
 
26
26
 
27
27
def sha1(t):
99
99
 
100
100
        self.assertEquals(hc.get_sha1('subdir'), None)
101
101
 
102
 
        # it's likely neither are cached at the moment because they 
103
 
        # changed recently, but we can't be sure
 
102
        # pause briefly to make sure they're not treated as new uncacheable
 
103
        # files
104
104
        pause()
105
105
 
106
 
        # should now be safe to cache it if we reread them
107
106
        self.assertEquals(hc.get_sha1('foo'), sha1('g00dbye'))
108
 
        self.assertEquals(len(hc._cache), 1)
109
107
        self.assertEquals(hc.get_sha1('foo2'), sha1('new content'))
110
 
        self.assertEquals(len(hc._cache), 2)
111
108
 
112
109
        # write out, read back in and check that we don't need to
113
110
        # re-read any files
131
128
        ok = False
132
129
 
133
130
        # make a best effort to create a weird kind of file
134
 
        funcs = (os.mkfifo, os.mknod)
 
131
        funcs = (getattr(os, 'mkfifo', None), getattr(os, 'mknod', None))
135
132
        for func in funcs:
 
133
            if func is None:
 
134
                continue
136
135
            try:
137
136
                func('a')
138
137
                ok = True
143
142
        if ok:
144
143
            self.assertRaises(BzrError, hc.get_sha1, 'a')
145
144
        else:
146
 
            raise BzrError("no weird file type could be created: extend this test case for your os")
 
145
            raise TestSkipped('No weird file type could be created')