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

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2018-07-03 03:20:44 UTC
  • mfrom: (7018.3.10 git-fixes)
  • Revision ID: breezy.the.bot@gmail.com-20180703032044-t5a5w5y0tmzrbezc
Port a few more bits of the git plugin to python 3.

Merged from https://code.launchpad.net/~jelmer/brz/git-fixes2/+merge/348803

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
class TestRevidConversionV1(tests.TestCase):
48
48
 
49
49
    def test_simple_git_to_bzr_revision_id(self):
50
 
        self.assertEqual("git-v1:"
51
 
                         "c6a4d8f1fa4ac650748e647c4b1b368f589a7356",
 
50
        self.assertEqual(b"git-v1:"
 
51
                         b"c6a4d8f1fa4ac650748e647c4b1b368f589a7356",
52
52
                         BzrGitMappingv1().revision_id_foreign_to_bzr(
53
 
                            "c6a4d8f1fa4ac650748e647c4b1b368f589a7356"))
 
53
                            b"c6a4d8f1fa4ac650748e647c4b1b368f589a7356"))
54
54
 
55
55
    def test_simple_bzr_to_git_revision_id(self):
56
 
        self.assertEqual(("c6a4d8f1fa4ac650748e647c4b1b368f589a7356", 
 
56
        self.assertEqual((b"c6a4d8f1fa4ac650748e647c4b1b368f589a7356",
57
57
                         BzrGitMappingv1()),
58
58
                         BzrGitMappingv1().revision_id_bzr_to_foreign(
59
 
                            "git-v1:"
60
 
                            "c6a4d8f1fa4ac650748e647c4b1b368f589a7356"))
 
59
                            b"git-v1:"
 
60
                            b"c6a4d8f1fa4ac650748e647c4b1b368f589a7356"))
61
61
 
62
62
    def test_is_control_file(self):
63
63
        mapping = BzrGitMappingv1()
68
68
 
69
69
    def test_generate_file_id(self):
70
70
        mapping = BzrGitMappingv1()
71
 
        self.assertIsInstance(mapping.generate_file_id("la"), str)
72
 
        self.assertIsInstance(mapping.generate_file_id(u"é"), str)
 
71
        self.assertIsInstance(mapping.generate_file_id("la"), bytes)
 
72
        self.assertIsInstance(mapping.generate_file_id(u"é"), bytes)
73
73
 
74
74
 
75
75
class FileidTests(tests.TestCase):
76
76
 
77
77
    def test_escape_space(self):
78
 
        self.assertEqual("bla_s", escape_file_id("bla "))
 
78
        self.assertEqual(b"bla_s", escape_file_id(b"bla "))
79
79
 
80
80
    def test_escape_control_l(self):
81
 
        self.assertEqual("bla_c", escape_file_id("bla\x0c"))
 
81
        self.assertEqual(b"bla_c", escape_file_id(b"bla\x0c"))
82
82
 
83
83
    def test_unescape_control_l(self):
84
 
        self.assertEqual("bla\x0c", unescape_file_id("bla_c"))
 
84
        self.assertEqual(b"bla\x0c", unescape_file_id(b"bla_c"))
85
85
 
86
86
    def test_escape_underscore(self):
87
 
        self.assertEqual("bla__", escape_file_id("bla_"))
 
87
        self.assertEqual(b"bla__", escape_file_id(b"bla_"))
88
88
 
89
89
    def test_escape_underscore_space(self):
90
 
        self.assertEqual("bla___s", escape_file_id("bla_ "))
 
90
        self.assertEqual(b"bla___s", escape_file_id(b"bla_ "))
91
91
 
92
92
    def test_unescape_underscore(self):
93
 
        self.assertEqual("bla ", unescape_file_id("bla_s"))
 
93
        self.assertEqual(b"bla ", unescape_file_id(b"bla_s"))
94
94
 
95
95
    def test_unescape_underscore_space(self):
96
 
        self.assertEqual("bla _", unescape_file_id("bla_s__"))
 
96
        self.assertEqual(b"bla _", unescape_file_id(b"bla_s__"))
97
97
 
98
98
 
99
99
class TestImportCommit(tests.TestCase):
100
100
 
101
101
    def test_commit(self):
102
102
        c = Commit()
103
 
        c.tree = "cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
104
 
        c.message = "Some message"
105
 
        c.committer = "Committer"
 
103
        c.tree = b"cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
 
104
        c.message = b"Some message"
 
105
        c.committer = b"Committer"
106
106
        c.commit_time = 4
107
107
        c.author_time = 5
108
108
        c.commit_timezone = 60 * 5
109
109
        c.author_timezone = 60 * 3
110
 
        c.author = "Author"
 
110
        c.author = b"Author"
111
111
        mapping = BzrGitMappingv1()
112
112
        rev, roundtrip_revid, verifiers = mapping.import_commit(c,
113
113
            mapping.revision_id_foreign_to_bzr)
114
114
        self.assertEqual(None, roundtrip_revid)
115
115
        self.assertEqual({}, verifiers)
116
 
        self.assertEqual("Some message", rev.message)
117
 
        self.assertEqual("Committer", rev.committer)
118
 
        self.assertEqual("Author", rev.properties['author'])
 
116
        self.assertEqual(u"Some message", rev.message)
 
117
        self.assertEqual(u"Committer", rev.committer)
 
118
        self.assertEqual(u"Author", rev.properties[u'author'])
119
119
        self.assertEqual(300, rev.timezone)
120
120
        self.assertEqual((), rev.parent_ids)
121
 
        self.assertEqual("5", rev.properties['author-timestamp'])
122
 
        self.assertEqual("180", rev.properties['author-timezone'])
123
 
        self.assertEqual("git-v1:" + c.id, rev.revision_id)
 
121
        self.assertEqual("5", rev.properties[u'author-timestamp'])
 
122
        self.assertEqual("180", rev.properties[u'author-timezone'])
 
123
        self.assertEqual(b"git-v1:" + c.id, rev.revision_id)
124
124
 
125
125
    def test_explicit_encoding(self):
126
126
        c = Commit()
127
 
        c.tree = "cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
128
 
        c.message = "Some message"
129
 
        c.committer = "Committer"
 
127
        c.tree = b"cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
 
128
        c.message = b"Some message"
 
129
        c.committer = b"Committer"
130
130
        c.commit_time = 4
131
131
        c.author_time = 5
132
132
        c.commit_timezone = 60 * 5
133
133
        c.author_timezone = 60 * 3
134
134
        c.author = u"Authér".encode("iso8859-1")
135
 
        c.encoding = "iso8859-1"
 
135
        c.encoding = b"iso8859-1"
136
136
        mapping = BzrGitMappingv1()
137
137
        rev, roundtrip_revid, verifiers = mapping.import_commit(c,
138
138
            mapping.revision_id_foreign_to_bzr)
139
139
        self.assertEqual(None, roundtrip_revid)
140
140
        self.assertEqual({}, verifiers)
141
 
        self.assertEqual(u"Authér", rev.properties['author'])
142
 
        self.assertEqual("iso8859-1", rev.properties["git-explicit-encoding"])
143
 
        self.assertTrue("git-implicit-encoding" not in rev.properties)
 
141
        self.assertEqual(u"Authér", rev.properties[u'author'])
 
142
        self.assertEqual("iso8859-1", rev.properties[u"git-explicit-encoding"])
 
143
        self.assertTrue(u"git-implicit-encoding" not in rev.properties)
144
144
 
145
145
    def test_implicit_encoding_fallback(self):
146
146
        c = Commit()
147
 
        c.tree = "cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
148
 
        c.message = "Some message"
149
 
        c.committer = "Committer"
 
147
        c.tree = b"cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
 
148
        c.message = b"Some message"
 
149
        c.committer = b"Committer"
150
150
        c.commit_time = 4
151
151
        c.author_time = 5
152
152
        c.commit_timezone = 60 * 5
157
157
            mapping.revision_id_foreign_to_bzr)
158
158
        self.assertEqual(None, roundtrip_revid)
159
159
        self.assertEqual({}, verifiers)
160
 
        self.assertEqual(u"Authér", rev.properties['author'])
161
 
        self.assertEqual("latin1", rev.properties["git-implicit-encoding"])
162
 
        self.assertTrue("git-explicit-encoding" not in rev.properties)
 
160
        self.assertEqual(u"Authér", rev.properties[u'author'])
 
161
        self.assertEqual("latin1", rev.properties[u"git-implicit-encoding"])
 
162
        self.assertTrue(u"git-explicit-encoding" not in rev.properties)
163
163
 
164
164
    def test_implicit_encoding_utf8(self):
165
165
        c = Commit()
166
 
        c.tree = "cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
167
 
        c.message = "Some message"
168
 
        c.committer = "Committer"
 
166
        c.tree = b"cc9462f7f8263ef5adfbeff2fb936bb36b504cba"
 
167
        c.message = b"Some message"
 
168
        c.committer = b"Committer"
169
169
        c.commit_time = 4
170
170
        c.author_time = 5
171
171
        c.commit_timezone = 60 * 5
176
176
            mapping.revision_id_foreign_to_bzr)
177
177
        self.assertEqual(None, roundtrip_revid)
178
178
        self.assertEqual({}, verifiers)
179
 
        self.assertEqual(u"Authér", rev.properties['author'])
 
179
        self.assertEqual(u"Authér", rev.properties[u'author'])
180
180
        self.assertTrue(u"git-explicit-encoding" not in rev.properties)
181
181
        self.assertTrue(u"git-implicit-encoding" not in rev.properties)
182
182
 
226
226
        self._lookup_parent = self._parent_map.__getitem__
227
227
 
228
228
    def assertRoundtripRevision(self, orig_rev):
229
 
        commit = self.mapping.export_commit(orig_rev, "mysha",
230
 
            self._lookup_parent, True, "testamentsha")
 
229
        commit = self.mapping.export_commit(orig_rev, b"mysha",
 
230
            self._lookup_parent, True, b"testamentsha")
231
231
        rev, roundtrip_revid, verifiers = self.mapping.import_commit(
232
232
            commit, self.mapping.revision_id_foreign_to_bzr)
233
233
        self.assertEqual(rev.revision_id,
234
234
            self.mapping.revision_id_foreign_to_bzr(commit.id))
235
235
        if self.mapping.roundtripping:
236
 
            self.assertEqual({"testament3-sha1": "testamentsha"} , verifiers)
 
236
            self.assertEqual({"testament3-sha1": b"testamentsha"} , verifiers)
237
237
            self.assertEqual(orig_rev.revision_id, roundtrip_revid)
238
238
            self.assertEqual(orig_rev.properties, rev.properties)
239
239
            self.assertEqual(orig_rev.committer, rev.committer)
246
246
 
247
247
    def test_simple_commit(self):
248
248
        r = Revision(self.mapping.revision_id_foreign_to_bzr(b"edf99e6c56495c620f20d5dacff9859ff7119261"))
249
 
        r.message = b"MyCommitMessage"
 
249
        r.message = "MyCommitMessage"
250
250
        r.parent_ids = []
251
251
        r.committer = "Jelmer Vernooij <jelmer@apache.org>"
252
252
        r.timestamp = 453543543
256
256
 
257
257
    def test_revision_id(self):
258
258
        r = Revision(b"myrevid")
259
 
        r.message = b"MyCommitMessage"
 
259
        r.message = "MyCommitMessage"
260
260
        r.parent_ids = []
261
261
        r.committer = "Jelmer Vernooij <jelmer@apache.org>"
262
262
        r.timestamp = 453543543
329
329
        c.message = b"Some message"
330
330
        c.committer = b"Committer <Committer>"
331
331
        c.commit_time = 4
332
 
        (c.commit_timezone, c._commit_timezone_neg_utc) = parse_timezone("--700")
 
332
        (c.commit_timezone, c._commit_timezone_neg_utc) = parse_timezone(b"--700")
333
333
        c.author_time = 5
334
334
        c.author_timezone = 60 * 2
335
335
        c.author = b"Author <author>"