~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_store.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-07-17 09:40:51 UTC
  • mfrom: (3518.1.2 virtualvf)
  • Revision ID: pqm@pqm.ubuntu.com-20080717094051-cgyo1zagozwcd4mm
(Jelmer) Add VirtualVersionedFiles class.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Test Store implementations."""
18
18
 
26
26
from bzrlib.store.text import TextStore
27
27
from bzrlib.tests import TestCase, TestCaseInTempDir, TestCaseWithTransport
28
28
import bzrlib.store as store
29
 
import bzrlib.store.versioned
30
29
import bzrlib.transactions as transactions
31
30
import bzrlib.transport as transport
32
31
from bzrlib.transport.memory import MemoryTransport
64
63
    def test_get(self):
65
64
        store = self.get_store()
66
65
        self.fill_store(store)
67
 
 
 
66
    
68
67
        self.check_content(store, 'a', 'hello')
69
68
        self.check_content(store, 'b', 'other')
70
69
        self.check_content(store, 'c', 'something')
71
 
 
 
70
    
72
71
        # Make sure that requesting a non-existing file fails
73
72
        self.assertRaises(KeyError, self.check_content, store, 'd', None)
74
73
 
92
91
        store.add(StringIO('goodbye2'), '123123', 'dsc')
93
92
        # these get gzipped - content should be stable
94
93
        self.assertEqual(store.total_size(), (2, 55))
95
 
 
 
94
        
96
95
    def test__relpath_suffixed(self):
97
96
        my_store = TextStore(MockTransport(),
98
97
                             prefixed=True, compressed=True)
101
100
 
102
101
 
103
102
class TestMemoryStore(TestCase):
104
 
 
 
103
    
105
104
    def get_store(self):
106
105
        return TextStore(MemoryTransport())
107
 
 
 
106
    
108
107
    def test_add_and_retrieve(self):
109
108
        store = self.get_store()
110
109
        store.add(StringIO('hello'), 'aa')
174
173
        self.assertEquals(s.has_id('a'), True)
175
174
        self.assertEquals(cs.get('a').read(), 'hello there')
176
175
        self.assertEquals(s.get('a').read(), 'hello there')
177
 
 
 
176
        
178
177
        self.assertRaises(BzrError, s.add, StringIO('goodbye'), 'a')
179
178
 
180
179
        s.add(StringIO('goodbye'), 'b')
186
185
        self.assertEquals(s.has_id('b'), True)
187
186
        self.assertEquals(cs.get('b').read(), 'goodbye')
188
187
        self.assertEquals(s.get('b').read(), 'goodbye')
189
 
 
 
188
        
190
189
        self.assertRaises(BzrError, cs.add, StringIO('again'), 'b')
191
190
 
192
191
class MockTransport(transport.Transport):
240
239
 
241
240
 
242
241
class TestTransportStore(TestCase):
243
 
 
 
242
    
244
243
    def test__relpath_invalid(self):
245
244
        my_store = store.TransportStore(MockTransport())
246
245
        self.assertRaises(ValueError, my_store._relpath, '/foo')
297
296
        my_store.register_suffix('dsc')
298
297
        my_store.add(stream, "foo", 'dsc')
299
298
        self.assertEqual([("_add", "foo.dsc", stream)], my_store._calls)
300
 
 
 
299
        
301
300
    def test_add_simple_suffixed(self):
302
301
        stream = StringIO("content")
303
302
        my_store = InstrumentedTransportStore(MockTransport(), True)
317
316
        stream = StringIO("signature for missing base")
318
317
        my_store.add(stream, "missing", 'sig')
319
318
        return my_store
320
 
 
 
319
        
321
320
    def test_has_simple(self):
322
321
        my_store = self.get_populated_store()
323
322
        self.assertEqual(True, my_store.has_id('foo'))