/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 bzrlib/tests/test_pack.py

  • Committer: Andrew Bennetts
  • Date: 2007-07-03 04:05:08 UTC
  • mto: This revision was merged to the branch mainline in revision 2572.
  • Revision ID: andrew.bennetts@canonical.com-20070703040508-11q9cdef4og1qry8
Add '(introduced in 0.18)' to pack format string.

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
        output = StringIO()
38
38
        writer = pack.ContainerWriter(output.write)
39
39
        writer.begin()
40
 
        self.assertEqual('Bazaar pack format 1\n', output.getvalue())
 
40
        self.assertEqual('Bazaar pack format 1 (introduced in 0.18)\n',
 
41
                         output.getvalue())
41
42
 
42
43
    def test_end(self):
43
44
        """The end() method writes an End Marker record."""
45
46
        writer = pack.ContainerWriter(output.write)
46
47
        writer.begin()
47
48
        writer.end()
48
 
        self.assertEqual('Bazaar pack format 1\nE', output.getvalue())
 
49
        self.assertEqual('Bazaar pack format 1 (introduced in 0.18)\nE',
 
50
                         output.getvalue())
49
51
 
50
52
    def test_add_bytes_record_no_name(self):
51
53
        """Add a bytes record with no name."""
53
55
        writer = pack.ContainerWriter(output.write)
54
56
        writer.begin()
55
57
        writer.add_bytes_record('abc', names=[])
56
 
        self.assertEqual('Bazaar pack format 1\nB3\n\nabc', output.getvalue())
 
58
        self.assertEqual('Bazaar pack format 1 (introduced in 0.18)\nB3\n\nabc',
 
59
                         output.getvalue())
57
60
 
58
61
    def test_add_bytes_record_one_name(self):
59
62
        """Add a bytes record with one name."""
61
64
        writer = pack.ContainerWriter(output.write)
62
65
        writer.begin()
63
66
        writer.add_bytes_record('abc', names=['name1'])
64
 
        self.assertEqual('Bazaar pack format 1\nB3\nname1\n\nabc',
65
 
                         output.getvalue())
 
67
        self.assertEqual(
 
68
            'Bazaar pack format 1 (introduced in 0.18)\n'
 
69
            'B3\nname1\n\nabc',
 
70
            output.getvalue())
66
71
 
67
72
    def test_add_bytes_record_two_names(self):
68
73
        """Add a bytes record with two names."""
70
75
        writer = pack.ContainerWriter(output.write)
71
76
        writer.begin()
72
77
        writer.add_bytes_record('abc', names=['name1', 'name2'])
73
 
        self.assertEqual('Bazaar pack format 1\nB3\nname1\nname2\n\nabc',
74
 
                         output.getvalue())
 
78
        self.assertEqual(
 
79
            'Bazaar pack format 1 (introduced in 0.18)\n'
 
80
            'B3\nname1\nname2\n\nabc',
 
81
            output.getvalue())
75
82
 
76
83
    def test_add_bytes_record_invalid_name(self):
77
84
        """Adding a Bytes record with a name with whitespace in it raises
102
109
 
103
110
    def test_empty_container(self):
104
111
        """Read an empty container."""
105
 
        reader = self.get_reader_for("Bazaar pack format 1\nE")
 
112
        reader = self.get_reader_for(
 
113
            "Bazaar pack format 1 (introduced in 0.18)\nE")
106
114
        self.assertEqual([], list(reader.iter_records()))
107
115
 
108
116
    def test_unknown_format(self):
115
123
        """Containers that don't end with an End Marker record should cause
116
124
        UnexpectedEndOfContainerError to be raised.
117
125
        """
118
 
        reader = self.get_reader_for("Bazaar pack format 1\n")
 
126
        reader = self.get_reader_for(
 
127
            "Bazaar pack format 1 (introduced in 0.18)\n")
119
128
        iterator = reader.iter_records()
120
129
        self.assertRaises(
121
130
            errors.UnexpectedEndOfContainerError, iterator.next)
122
131
 
123
132
    def test_unknown_record_type(self):
124
133
        """Unknown record types cause UnknownRecordTypeError to be raised."""
125
 
        reader = self.get_reader_for("Bazaar pack format 1\nX")
 
134
        reader = self.get_reader_for(
 
135
            "Bazaar pack format 1 (introduced in 0.18)\nX")
126
136
        iterator = reader.iter_records()
127
137
        self.assertRaises(
128
138
            errors.UnknownRecordTypeError, iterator.next)
134
144
        TestBytesRecordReader.  This test is here to ensure that
135
145
        ContainerReader's integration with BytesRecordReader is working.
136
146
        """
137
 
        reader = self.get_reader_for("Bazaar pack format 1\nB5\n\naaaaaE")
 
147
        reader = self.get_reader_for(
 
148
            "Bazaar pack format 1 (introduced in 0.18)\nB5\n\naaaaaE")
138
149
        expected_records = [([], 'aaaaa')]
139
150
        self.assertEqual(
140
151
            expected_records,
143
154
 
144
155
    def test_validate_empty_container(self):
145
156
        """validate does not raise an error for a container with no records."""
146
 
        reader = self.get_reader_for("Bazaar pack format 1\nE")
 
157
        reader = self.get_reader_for("Bazaar pack format 1 (introduced in 0.18)\nE")
147
158
        # No exception raised
148
159
        reader.validate()
149
160
 
150
161
    def test_validate_non_empty_valid_container(self):
151
162
        """validate does not raise an error for a container with a valid record.
152
163
        """
153
 
        reader = self.get_reader_for("Bazaar pack format 1\nB3\nname\n\nabcE")
 
164
        reader = self.get_reader_for(
 
165
            "Bazaar pack format 1 (introduced in 0.18)\nB3\nname\n\nabcE")
154
166
        # No exception raised
155
167
        reader.validate()
156
168
 
160
172
        It may raise either UnexpectedEndOfContainerError or
161
173
        UnknownContainerFormatError, depending on exactly what the string is.
162
174
        """
163
 
        inputs = ["", "x", "Bazaar pack format 1", "bad\n"]
 
175
        inputs = ["", "x", "Bazaar pack format 1 (introduced in 0.18)", "bad\n"]
164
176
        for input in inputs:
165
177
            reader = self.get_reader_for(input)
166
178
            self.assertRaises(
172
184
        """validate raises UnknownRecordTypeError for unrecognised record
173
185
        types.
174
186
        """
175
 
        reader = self.get_reader_for("Bazaar pack format 1\nX")
 
187
        reader = self.get_reader_for(
 
188
            "Bazaar pack format 1 (introduced in 0.18)\nX")
176
189
        self.assertRaises(errors.UnknownRecordTypeError, reader.validate)
177
190
 
178
191
    def test_validate_data_after_end_marker(self):
179
192
        """validate raises ContainerHasExcessDataError if there are any bytes
180
193
        after the end of the container.
181
194
        """
182
 
        reader = self.get_reader_for("Bazaar pack format 1\nEcrud")
 
195
        reader = self.get_reader_for(
 
196
            "Bazaar pack format 1 (introduced in 0.18)\nEcrud")
183
197
        self.assertRaises(
184
198
            errors.ContainerHasExcessDataError, reader.validate)
185
199
 
187
201
        """validate raises UnexpectedEndOfContainerError if there's no end of
188
202
        container marker, even if the container up to this point has been valid.
189
203
        """
190
 
        reader = self.get_reader_for("Bazaar pack format 1\n")
 
204
        reader = self.get_reader_for(
 
205
            "Bazaar pack format 1 (introduced in 0.18)\n")
191
206
        self.assertRaises(
192
207
            errors.UnexpectedEndOfContainerError, reader.validate)
193
208
 
196
211
        multiple times in the container.
197
212
        """
198
213
        reader = self.get_reader_for(
199
 
            "Bazaar pack format 1\n"
 
214
            "Bazaar pack format 1 (introduced in 0.18)\n"
200
215
            "B0\nname\n\n"
201
216
            "B0\nname\n\n"
202
217
            "E")
204
219
 
205
220
    def test_validate_undecodeable_name(self):
206
221
        """Names that aren't valid UTF-8 cause validate to fail."""
207
 
        reader = self.get_reader_for("Bazaar pack format 1\nB0\n\xcc\n\nE")
 
222
        reader = self.get_reader_for(
 
223
            "Bazaar pack format 1 (introduced in 0.18)\nB0\n\xcc\n\nE")
208
224
        self.assertRaises(errors.InvalidRecordError, reader.validate)
209
225
        
210
226