/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test_pack.py

  • Committer: Jelmer Vernooij
  • Date: 2018-05-06 11:48:54 UTC
  • mto: This revision was merged to the branch mainline in revision 6960.
  • Revision ID: jelmer@jelmer.uk-20180506114854-h4qd9ojaqy8wxjsd
Move .mailmap to root.

Show diffs side-by-side

added added

removed removed

Lines of Context:
92
92
        This uses None as the output stream to show that the constructor
93
93
        doesn't try to use the output stream.
94
94
        """
95
 
        pack.ContainerWriter(None)
 
95
        writer = pack.ContainerWriter(None)
96
96
 
97
97
    def test_begin(self):
98
98
        """The begin() method writes the container format marker line."""
119
119
    def test_non_empty_end_does_not_add_a_record_to_records_written(self):
120
120
        """The end() method does not count towards the records written."""
121
121
        self.writer.begin()
122
 
        self.writer.add_bytes_record([b'foo'], len(b'foo'), names=[])
 
122
        self.writer.add_bytes_record(b'foo', names=[])
123
123
        self.writer.end()
124
124
        self.assertEqual(1, self.writer.records_written)
125
125
 
126
126
    def test_add_bytes_record_no_name(self):
127
127
        """Add a bytes record with no name."""
128
128
        self.writer.begin()
129
 
        offset, length = self.writer.add_bytes_record([b'abc'], len(b'abc'), names=[])
 
129
        offset, length = self.writer.add_bytes_record(b'abc', names=[])
130
130
        self.assertEqual((42, 7), (offset, length))
131
131
        self.assertOutput(
132
132
            b'Bazaar pack format 1 (introduced in 0.18)\nB3\n\nabc')
136
136
        self.writer.begin()
137
137
 
138
138
        offset, length = self.writer.add_bytes_record(
139
 
            [b'abc'], len(b'abc'), names=[(b'name1', )])
 
139
            b'abc', names=[(b'name1', )])
140
140
        self.assertEqual((42, 13), (offset, length))
141
141
        self.assertOutput(
142
142
            b'Bazaar pack format 1 (introduced in 0.18)\n'
157
157
 
158
158
        self.writer.begin()
159
159
        offset, length = self.writer.add_bytes_record(
160
 
            [b'abcabc'], len(b'abcabc'), names=[(b'name1', )])
 
160
            b'abcabc', names=[(b'name1', )])
161
161
        self.assertEqual((42, 16), (offset, length))
162
162
        self.assertOutput(
163
163
            b'Bazaar pack format 1 (introduced in 0.18)\n'
173
173
        """Add a bytes record with two names."""
174
174
        self.writer.begin()
175
175
        offset, length = self.writer.add_bytes_record(
176
 
            [b'abc'], len(b'abc'), names=[(b'name1', ), (b'name2', )])
 
176
            b'abc', names=[(b'name1', ), (b'name2', )])
177
177
        self.assertEqual((42, 19), (offset, length))
178
178
        self.assertOutput(
179
179
            b'Bazaar pack format 1 (introduced in 0.18)\n'
183
183
        """Add a bytes record with two names."""
184
184
        self.writer.begin()
185
185
        offset, length = self.writer.add_bytes_record(
186
 
            [b'abc'], len(b'abc'), names=[(b'name1', ), (b'name2', )])
 
186
            b'abc', names=[(b'name1', ), (b'name2', )])
187
187
        self.assertEqual((42, 19), (offset, length))
188
188
        self.assertOutput(
189
189
            b'Bazaar pack format 1 (introduced in 0.18)\n'
193
193
        """Add a bytes record with a two-element name."""
194
194
        self.writer.begin()
195
195
        offset, length = self.writer.add_bytes_record(
196
 
            [b'abc'], len(b'abc'), names=[(b'name1', b'name2')])
 
196
            b'abc', names=[(b'name1', b'name2')])
197
197
        self.assertEqual((42, 19), (offset, length))
198
198
        self.assertOutput(
199
199
            b'Bazaar pack format 1 (introduced in 0.18)\n'
201
201
 
202
202
    def test_add_second_bytes_record_gets_higher_offset(self):
203
203
        self.writer.begin()
204
 
        self.writer.add_bytes_record([b'a', b'bc'], len(b'abc'), names=[])
205
 
        offset, length = self.writer.add_bytes_record([b'abc'], len(b'abc'), names=[])
 
204
        self.writer.add_bytes_record(b'abc', names=[])
 
205
        offset, length = self.writer.add_bytes_record(b'abc', names=[])
206
206
        self.assertEqual((49, 7), (offset, length))
207
207
        self.assertOutput(
208
208
            b'Bazaar pack format 1 (introduced in 0.18)\n'
216
216
        self.writer.begin()
217
217
        self.assertRaises(
218
218
            errors.InvalidRecordError,
219
 
            self.writer.add_bytes_record, [b'abc'], len(b'abc'), names=[(b'bad name', )])
 
219
            self.writer.add_bytes_record, b'abc', names=[(b'bad name', )])
220
220
 
221
221
    def test_add_bytes_records_add_to_records_written(self):
222
222
        """Adding a Bytes record increments the records_written counter."""
223
223
        self.writer.begin()
224
 
        self.writer.add_bytes_record([b'foo'], len(b'foo'), names=[])
 
224
        self.writer.add_bytes_record(b'foo', names=[])
225
225
        self.assertEqual(1, self.writer.records_written)
226
 
        self.writer.add_bytes_record([b'foo'], len(b'foo'), names=[])
 
226
        self.writer.add_bytes_record(b'foo', names=[])
227
227
        self.assertEqual(2, self.writer.records_written)
228
228
 
229
229
 
246
246
        This uses None as the output stream to show that the constructor
247
247
        doesn't try to use the input stream.
248
248
        """
249
 
        pack.ContainerReader(None)
 
249
        reader = pack.ContainerReader(None)
250
250
 
251
251
    def test_empty_container(self):
252
252
        """Read an empty container."""
342
342
 
343
343
    def test_validate_no_end_marker(self):
344
344
        """validate raises UnexpectedEndOfContainerError if there's no end of
345
 
        container marker, even if the container up to this point has been
346
 
        valid.
 
345
        container marker, even if the container up to this point has been valid.
347
346
        """
348
347
        reader = self.get_reader_for(
349
348
            b"Bazaar pack format 1 (introduced in 0.18)\n")
539
538
        writer = pack.ContainerWriter(pack_data.write)
540
539
        writer.begin()
541
540
        memos = []
542
 
        memos.append(writer.add_bytes_record([b'abc'], 3, names=[]))
543
 
        memos.append(writer.add_bytes_record([b'def'], 3, names=[(b'name1', )]))
544
 
        memos.append(writer.add_bytes_record([b'ghi'], 3, names=[(b'name2', )]))
545
 
        memos.append(writer.add_bytes_record([b'jkl'], 3, names=[]))
 
541
        memos.append(writer.add_bytes_record(b'abc', names=[]))
 
542
        memos.append(writer.add_bytes_record(b'def', names=[(b'name1', )]))
 
543
        memos.append(writer.add_bytes_record(b'ghi', names=[(b'name2', )]))
 
544
        memos.append(writer.add_bytes_record(b'jkl', names=[]))
546
545
        writer.end()
547
546
        transport = self.get_transport()
548
 
        transport.put_bytes('mypack', pack_data.getvalue())
 
547
        transport.put_bytes(b'mypack', pack_data.getvalue())
549
548
        requested_records = [memos[0], memos[2]]
550
 
        reader = pack.make_readv_reader(transport, 'mypack', requested_records)
 
549
        reader = pack.make_readv_reader(transport, b'mypack', requested_records)
551
550
        result = []
552
551
        for names, reader_func in reader.iter_records():
553
552
            result.append((names, reader_func(None)))
565
564
    def test_read_bytes(self):
566
565
        """Test reading of both single bytes and all bytes in a hunk."""
567
566
        transport = self.get_transport()
568
 
        transport.put_bytes('sample', b'0123456789')
569
 
        f = pack.ReadVFile(transport.readv(
570
 
            'sample', [(0, 1), (1, 2), (4, 1), (6, 2)]))
 
567
        transport.put_bytes(b'sample', b'0123456789')
 
568
        f = pack.ReadVFile(transport.readv(b'sample', [(0, 1), (1, 2), (4, 1), (6, 2)]))
571
569
        results = []
572
570
        results.append(f.read(1))
573
571
        results.append(f.read(2))
582
580
        This is always within a readv hunk, never across it.
583
581
        """
584
582
        transport = self.get_transport()
585
 
        transport.put_bytes('sample', b'0\n2\n4\n')
586
 
        f = pack.ReadVFile(transport.readv('sample', [(0, 2), (2, 4)]))
 
583
        transport.put_bytes(b'sample', b'0\n2\n4\n')
 
584
        f = pack.ReadVFile(transport.readv(b'sample', [(0, 2), (2, 4)]))
587
585
        results = []
588
586
        results.append(f.readline())
589
587
        results.append(f.readline())
593
591
    def test_readline_and_read(self):
594
592
        """Test exercising one byte reads, readline, and then read again."""
595
593
        transport = self.get_transport()
596
 
        transport.put_bytes('sample', b'0\n2\n4\n')
597
 
        f = pack.ReadVFile(transport.readv('sample', [(0, 6)]))
 
594
        transport.put_bytes(b'sample', b'0\n2\n4\n')
 
595
        f = pack.ReadVFile(transport.readv(b'sample', [(0, 6)]))
598
596
        results = []
599
597
        results.append(f.read(1))
600
598
        results.append(f.readline())