/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_memorytree.py

  • Committer: Jelmer Vernooij
  • Date: 2018-07-08 14:45:27 UTC
  • mto: This revision was merged to the branch mainline in revision 7036.
  • Revision ID: jelmer@jelmer.uk-20180708144527-codhlvdcdg9y0nji
Fix a bunch of merge tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
"""Tests for the MemoryTree class."""
19
19
 
20
 
from bzrlib import errors
21
 
from bzrlib.memorytree import MemoryTree
22
 
from bzrlib.tests import TestCaseWithTransport
23
 
from bzrlib.treebuilder import TreeBuilder
 
20
from .. import errors
 
21
from ..memorytree import MemoryTree
 
22
from . import TestCaseWithTransport
 
23
from ..treebuilder import TreeBuilder
24
24
 
25
25
 
26
26
class TestMemoryTree(TestCaseWithTransport):
29
29
        """Creating a mutable tree on a trivial branch works."""
30
30
        branch = self.make_branch('branch')
31
31
        tree = MemoryTree.create_on_branch(branch)
32
 
        self.assertEqual(branch.bzrdir, tree.bzrdir)
 
32
        self.assertEqual(branch.controldir, tree.controldir)
33
33
        self.assertEqual(branch, tree.branch)
34
34
        self.assertEqual([], tree.get_parent_ids())
35
35
 
49
49
        tree.lock_read()
50
50
        self.assertEqual([rev_id], tree.get_parent_ids())
51
51
        self.assertEqual('contents of foo\n',
52
 
            tree.get_file(tree.path2id('foo')).read())
 
52
            tree.get_file('foo').read())
53
53
        tree.unlock()
54
54
 
55
55
    def test_get_root_id(self):
108
108
        branch = self.make_branch('branch')
109
109
        tree = MemoryTree.create_on_branch(branch)
110
110
        tree.lock_write()
111
 
        tree.add(['', 'foo'], ids=['root-id', 'foo-id'],
 
111
        tree.add(['', 'foo'], ids=[b'root-id', b'foo-id'],
112
112
                  kinds=['directory', 'file'])
113
 
        tree.put_file_bytes_non_atomic('foo-id', 'barshoom')
114
 
        self.assertEqual('barshoom', tree.get_file('foo-id').read())
 
113
        tree.put_file_bytes_non_atomic('foo', b'barshoom')
 
114
        self.assertEqual(b'barshoom', tree.get_file('foo').read())
115
115
        tree.unlock()
116
116
 
117
117
    def test_put_existing_file(self):
118
118
        branch = self.make_branch('branch')
119
119
        tree = MemoryTree.create_on_branch(branch)
120
120
        tree.lock_write()
121
 
        tree.add(['', 'foo'], ids=['root-id', 'foo-id'],
 
121
        tree.add(['', 'foo'], ids=[b'root-id', b'foo-id'],
122
122
                 kinds=['directory', 'file'])
123
 
        tree.put_file_bytes_non_atomic('foo-id', 'first-content')
124
 
        tree.put_file_bytes_non_atomic('foo-id', 'barshoom')
125
 
        self.assertEqual('barshoom', tree.get_file('foo-id').read())
 
123
        tree.put_file_bytes_non_atomic('foo', b'first-content')
 
124
        tree.put_file_bytes_non_atomic('foo', b'barshoom')
 
125
        self.assertEqual(b'barshoom', tree.get_file('foo').read())
126
126
        tree.unlock()
127
127
 
128
128
    def test_add_in_subdir(self):
130
130
        tree = MemoryTree.create_on_branch(branch)
131
131
        tree.lock_write()
132
132
        self.addCleanup(tree.unlock)
133
 
        tree.add([''], ['root-id'], ['directory'])
 
133
        tree.add([''], [b'root-id'], ['directory'])
134
134
        # Unfortunately, the only way to 'mkdir' is to call 'tree.mkdir', but
135
135
        # that *always* adds the directory as well. So if you want to create a
136
136
        # file in a subdirectory, you have to split out the 'mkdir()' calls
137
137
        # from the add and put_file_bytes_non_atomic calls. :(
138
 
        tree.mkdir('adir', 'dir-id')
139
 
        tree.add(['adir/afile'], ['file-id'], ['file'])
140
 
        self.assertEqual('adir/afile', tree.id2path('file-id'))
141
 
        self.assertEqual('adir', tree.id2path('dir-id'))
142
 
        tree.put_file_bytes_non_atomic('file-id', 'barshoom')
 
138
        tree.mkdir('adir', b'dir-id')
 
139
        tree.add(['adir/afile'], [b'file-id'], ['file'])
 
140
        self.assertEqual('adir/afile', tree.id2path(b'file-id'))
 
141
        self.assertEqual('adir', tree.id2path(b'dir-id'))
 
142
        tree.put_file_bytes_non_atomic('adir/afile', b'barshoom')
143
143
 
144
144
    def test_commit_trivial(self):
145
145
        """Smoke test for commit on a MemoryTree.
150
150
        branch = self.make_branch('branch')
151
151
        tree = MemoryTree.create_on_branch(branch)
152
152
        tree.lock_write()
153
 
        tree.add(['', 'foo'], ids=['root-id', 'foo-id'],
 
153
        tree.add(['', 'foo'], ids=[b'root-id', b'foo-id'],
154
154
                 kinds=['directory', 'file'])
155
 
        tree.put_file_bytes_non_atomic('foo-id', 'barshoom')
 
155
        tree.put_file_bytes_non_atomic('foo', b'barshoom')
156
156
        revision_id = tree.commit('message baby')
157
157
        # the parents list for the tree should have changed.
158
158
        self.assertEqual([revision_id], tree.get_parent_ids())
161
161
        revtree = tree.branch.repository.revision_tree(revision_id)
162
162
        revtree.lock_read()
163
163
        self.addCleanup(revtree.unlock)
164
 
        self.assertEqual('barshoom', revtree.get_file('foo-id').read())
 
164
        with revtree.get_file('foo') as f:
 
165
            self.assertEqual(b'barshoom', f.read())
165
166
 
166
167
    def test_unversion(self):
167
168
        """Some test for unversion of a memory tree."""
168
169
        branch = self.make_branch('branch')
169
170
        tree = MemoryTree.create_on_branch(branch)
170
171
        tree.lock_write()
171
 
        tree.add(['', 'foo'], ids=['root-id', 'foo-id'],
 
172
        tree.add(['', 'foo'], ids=[b'root-id', b'foo-id'],
172
173
                 kinds=['directory', 'file'])
173
 
        tree.unversion(['foo-id'])
174
 
        self.assertFalse(tree.has_id('foo-id'))
 
174
        tree.unversion(['foo'])
 
175
        self.assertFalse(tree.is_versioned('foo'))
 
176
        self.assertFalse(tree.has_id(b'foo-id'))
175
177
        tree.unlock()
176
178
 
177
179
    def test_last_revision(self):
187
189
        tree = self.make_branch_and_memory_tree('branch')
188
190
        tree.lock_write()
189
191
        self.addCleanup(tree.unlock)
190
 
        tree.add(['', 'foo'], ['root-id', 'foo-id'], ['directory', 'file'])
191
 
        tree.put_file_bytes_non_atomic('foo-id', 'content\n')
192
 
        tree.commit('one', rev_id='rev-one')
 
192
        tree.add(['', 'foo'], [b'root-id', b'foo-id'], ['directory', 'file'])
 
193
        tree.put_file_bytes_non_atomic('foo', b'content\n')
 
194
        tree.commit('one', rev_id=b'rev-one')
193
195
        tree.rename_one('foo', 'bar')
194
 
        self.assertEqual('bar', tree.id2path('foo-id'))
 
196
        self.assertEqual('bar', tree.id2path(b'foo-id'))
195
197
        self.assertEqual('content\n', tree._file_transport.get_bytes('bar'))
196
198
        self.assertRaises(errors.NoSuchFile,
197
199
                          tree._file_transport.get_bytes, 'foo')
198
 
        tree.commit('two', rev_id='rev-two')
199
 
        self.assertEqual('content\n', tree._file_transport.get_bytes('bar'))
 
200
        tree.commit('two', rev_id=b'rev-two')
 
201
        self.assertEqual(b'content\n', tree._file_transport.get_bytes('bar'))
200
202
        self.assertRaises(errors.NoSuchFile,
201
203
                          tree._file_transport.get_bytes, 'foo')
202
204
 
203
 
        rev_tree2 = tree.branch.repository.revision_tree('rev-two')
204
 
        self.assertEqual('bar', rev_tree2.id2path('foo-id'))
205
 
        self.assertEqual('content\n', rev_tree2.get_file_text('foo-id'))
 
205
        rev_tree2 = tree.branch.repository.revision_tree(b'rev-two')
 
206
        self.assertEqual('bar', rev_tree2.id2path(b'foo-id'))
 
207
        self.assertEqual(b'content\n', rev_tree2.get_file_text('bar'))
206
208
 
207
209
    def test_rename_file_to_subdir(self):
208
210
        tree = self.make_branch_and_memory_tree('branch')
209
211
        tree.lock_write()
210
212
        self.addCleanup(tree.unlock)
211
213
        tree.add('')
212
 
        tree.mkdir('subdir', 'subdir-id')
213
 
        tree.add('foo', 'foo-id', 'file')
214
 
        tree.put_file_bytes_non_atomic('foo-id', 'content\n')
215
 
        tree.commit('one', rev_id='rev-one')
 
214
        tree.mkdir('subdir', b'subdir-id')
 
215
        tree.add('foo', b'foo-id', 'file')
 
216
        tree.put_file_bytes_non_atomic('foo', b'content\n')
 
217
        tree.commit('one', rev_id=b'rev-one')
216
218
 
217
219
        tree.rename_one('foo', 'subdir/bar')
218
 
        self.assertEqual('subdir/bar', tree.id2path('foo-id'))
 
220
        self.assertEqual('subdir/bar', tree.id2path(b'foo-id'))
219
221
        self.assertEqual('content\n',
220
222
                         tree._file_transport.get_bytes('subdir/bar'))
221
 
        tree.commit('two', rev_id='rev-two')
222
 
        rev_tree2 = tree.branch.repository.revision_tree('rev-two')
223
 
        self.assertEqual('subdir/bar', rev_tree2.id2path('foo-id'))
 
223
        tree.commit('two', rev_id=b'rev-two')
 
224
        rev_tree2 = tree.branch.repository.revision_tree(b'rev-two')
 
225
        self.assertEqual('subdir/bar', rev_tree2.id2path(b'foo-id'))