/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/plugins/git/tests/test_builder.py

  • Committer: Jelmer Vernooij
  • Date: 2018-05-15 19:05:51 UTC
  • mfrom: (6968 work)
  • mto: (6973.5.1 python3-c)
  • mto: This revision was merged to the branch mainline in revision 6984.
  • Revision ID: jelmer@jelmer.uk-20180515190551-epr5abd0mtxmrehr
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
from __future__ import absolute_import
20
20
 
21
 
from cStringIO import StringIO
 
21
from io import BytesIO
22
22
 
23
23
from dulwich.repo import Repo as GitRepo
24
24
 
28
28
class TestGitBranchBuilder(tests.TestCase):
29
29
 
30
30
    def test__create_blob(self):
31
 
        stream = StringIO()
 
31
        stream = BytesIO()
32
32
        builder = tests.GitBranchBuilder(stream)
33
33
        self.assertEqual(1, builder._create_blob('foo\nbar\n'))
34
34
        self.assertEqualDiff('blob\nmark :1\ndata 8\nfoo\nbar\n\n',
35
35
                             stream.getvalue())
36
36
 
37
37
    def test_set_file(self):
38
 
        stream = StringIO()
 
38
        stream = BytesIO()
39
39
        builder = tests.GitBranchBuilder(stream)
40
40
        builder.set_file('foobar', 'foo\nbar\n', False)
41
41
        self.assertEqualDiff('blob\nmark :1\ndata 8\nfoo\nbar\n\n',
43
43
        self.assertEqual(['M 100644 :1 foobar\n'], builder.commit_info)
44
44
 
45
45
    def test_set_file_unicode(self):
46
 
        stream = StringIO()
 
46
        stream = BytesIO()
47
47
        builder = tests.GitBranchBuilder(stream)
48
48
        builder.set_file(u'f\xb5/bar', 'contents\nbar\n', False)
49
49
        self.assertEqualDiff('blob\nmark :1\ndata 13\ncontents\nbar\n\n',
51
51
        self.assertEqual(['M 100644 :1 f\xc2\xb5/bar\n'], builder.commit_info)
52
52
 
53
53
    def test_set_file_newline(self):
54
 
        stream = StringIO()
 
54
        stream = BytesIO()
55
55
        builder = tests.GitBranchBuilder(stream)
56
56
        builder.set_file(u'foo\nbar', 'contents\nbar\n', False)
57
57
        self.assertEqualDiff('blob\nmark :1\ndata 13\ncontents\nbar\n\n',
59
59
        self.assertEqual(['M 100644 :1 "foo\\nbar"\n'], builder.commit_info)
60
60
 
61
61
    def test_set_file_executable(self):
62
 
        stream = StringIO()
 
62
        stream = BytesIO()
63
63
        builder = tests.GitBranchBuilder(stream)
64
64
        builder.set_file(u'f\xb5/bar', 'contents\nbar\n', True)
65
65
        self.assertEqualDiff('blob\nmark :1\ndata 13\ncontents\nbar\n\n',
67
67
        self.assertEqual(['M 100755 :1 f\xc2\xb5/bar\n'], builder.commit_info)
68
68
 
69
69
    def test_set_link(self):
70
 
        stream = StringIO()
 
70
        stream = BytesIO()
71
71
        builder = tests.GitBranchBuilder(stream)
72
72
        builder.set_link(u'f\xb5/bar', 'link/contents')
73
73
        self.assertEqualDiff('blob\nmark :1\ndata 13\nlink/contents\n',
75
75
        self.assertEqual(['M 120000 :1 f\xc2\xb5/bar\n'], builder.commit_info)
76
76
 
77
77
    def test_set_link_newline(self):
78
 
        stream = StringIO()
 
78
        stream = BytesIO()
79
79
        builder = tests.GitBranchBuilder(stream)
80
80
        builder.set_link(u'foo\nbar', 'link/contents')
81
81
        self.assertEqualDiff('blob\nmark :1\ndata 13\nlink/contents\n',
83
83
        self.assertEqual(['M 120000 :1 "foo\\nbar"\n'], builder.commit_info)
84
84
 
85
85
    def test_delete_entry(self):
86
 
        stream = StringIO()
 
86
        stream = BytesIO()
87
87
        builder = tests.GitBranchBuilder(stream)
88
88
        builder.delete_entry(u'path/to/f\xb5')
89
89
        self.assertEqual(['D path/to/f\xc2\xb5\n'], builder.commit_info)
90
90
 
91
91
    def test_delete_entry_newline(self):
92
 
        stream = StringIO()
 
92
        stream = BytesIO()
93
93
        builder = tests.GitBranchBuilder(stream)
94
94
        builder.delete_entry(u'path/to/foo\nbar')
95
95
        self.assertEqual(['D "path/to/foo\\nbar"\n'], builder.commit_info)
110
110
        self.assertEqual(encode(u'foo\r\nbar'), '"foo\r\\nbar"')
111
111
 
112
112
    def test_add_and_commit(self):
113
 
        stream = StringIO()
 
113
        stream = BytesIO()
114
114
        builder = tests.GitBranchBuilder(stream)
115
115
 
116
116
        builder.set_file(u'f\xb5/bar', 'contents\nbar\n', False)
130
130
                             stream.getvalue())
131
131
 
132
132
    def test_commit_base(self):
133
 
        stream = StringIO()
 
133
        stream = BytesIO()
134
134
        builder = tests.GitBranchBuilder(stream)
135
135
 
136
136
        builder.set_file(u'foo', 'contents\nfoo\n', False)
168
168
                             '\n', stream.getvalue())
169
169
 
170
170
    def test_commit_merge(self):
171
 
        stream = StringIO()
 
171
        stream = BytesIO()
172
172
        builder = tests.GitBranchBuilder(stream)
173
173
 
174
174
        builder.set_file(u'foo', 'contents\nfoo\n', False)
217
217
                             '\n', stream.getvalue())
218
218
 
219
219
    def test_auto_timestamp(self):
220
 
        stream = StringIO()
 
220
        stream = BytesIO()
221
221
        builder = tests.GitBranchBuilder(stream)
222
222
        builder.commit('Joe Foo <joe@foo.com>', u'message')
223
223
        self.assertContainsRe(stream.getvalue(),
224
224
                              r'committer Joe Foo <joe@foo\.com> \d+ \+0000')
225
225
 
226
226
    def test_reset(self):
227
 
        stream = StringIO()
 
227
        stream = BytesIO()
228
228
        builder = tests.GitBranchBuilder(stream)
229
229
        builder.reset()
230
230
        self.assertEqualDiff('reset refs/heads/master\n\n', stream.getvalue())
231
231
 
232
232
    def test_reset_named_ref(self):
233
 
        stream = StringIO()
 
233
        stream = BytesIO()
234
234
        builder = tests.GitBranchBuilder(stream)
235
235
        builder.reset('refs/heads/branch')
236
236
        self.assertEqualDiff('reset refs/heads/branch\n\n', stream.getvalue())
237
237
 
238
238
    def test_reset_revision(self):
239
 
        stream = StringIO()
 
239
        stream = BytesIO()
240
240
        builder = tests.GitBranchBuilder(stream)
241
241
        builder.reset(mark=123)
242
242
        self.assertEqualDiff(