139
140
self.requireFeature(features.UnicodeFilenameFeature)
140
141
file_name = u'\N{euro sign}'
141
142
self.run_bzr(['init'])
142
with open(file_name, 'w') as f: f.write('hello world')
143
with open(file_name, 'w') as f:
144
f.write('hello world')
143
145
self.run_bzr(['add'])
144
146
out, err = self.run_bzr(['commit', '-m', file_name])
145
147
reflags = re.MULTILINE|re.DOTALL|re.UNICODE
146
148
te = osutils.get_terminal_encoding()
147
self.assertContainsRe(err.decode(te),
149
self.assertContainsRe(err if PY3 else err.decode(te),
148
150
u'The commit message is a file name:',
158
160
osutils.get_terminal_encoding = lambda trace=None: 'ascii'
159
161
file_name = u'foo\u1234'
160
with open(file_name, 'w') as f: f.write('hello world')
162
with open(file_name, 'w') as f:
163
f.write('hello world')
161
164
self.run_bzr(['add'])
162
165
out, err = self.run_bzr(['commit', '-m', file_name])
163
166
reflags = re.MULTILINE|re.DOTALL|re.UNICODE
164
167
te = osutils.get_terminal_encoding()
165
self.assertContainsRe(err.decode(te, 'replace'),
168
self.assertContainsRe(err if PY3 else err.decode(te, 'replace'),
166
169
u'The commit message is a file name:',
173
176
tree = self.make_branch_and_tree(".")
174
177
self.build_tree(["f"])
176
out, err = self.run_bzr(["commit", "-m", "Wrong filename", u"\xa7"],
179
out, err = self.run_bzr_raw(["commit", "-m", "Wrong filename", u"\xa7"],
177
180
encoding="utf-8", retcode=3)
178
self.assertContainsRe(err, "(?m)not versioned: \"\xc2\xa7\"$")
181
self.assertContainsRe(err, b"(?m)not versioned: \"\xc2\xa7\"$")
180
183
def test_non_ascii_file_unversioned_iso_8859_5(self):
181
184
self.requireFeature(features.UnicodeFilenameFeature)
182
185
tree = self.make_branch_and_tree(".")
183
186
self.build_tree(["f"])
185
out, err = self.run_bzr(["commit", "-m", "Wrong filename", u"\xa7"],
188
out, err = self.run_bzr_raw(["commit", "-m", "Wrong filename", u"\xa7"],
186
189
encoding="iso-8859-5", retcode=3)
187
self.expectFailure("Error messages are always written as UTF-8",
188
self.assertNotContainsString, err, "\xc2\xa7")
189
self.assertContainsRe(err, "(?m)not versioned: \"\xfd\"$")
191
self.expectFailure("Error messages are always written as UTF-8",
192
self.assertNotContainsString, err, b"\xc2\xa7")
194
self.assertNotContainsString(err, b"\xc2\xa7")
195
self.assertContainsRe(err, b"(?m)not versioned: \"\xfd\"$")
191
197
def test_warn_about_forgotten_commit_message(self):
192
198
"""Test that the lack of -m parameter is caught"""
419
425
# work as a merge
420
426
# retcode 1 as we expect a text conflict
421
427
self.run_bzr('update u1', retcode=1)
422
self.assertFileEqual('''\
428
self.assertFileEqual(b'''\
424
430
first offline change in u1
538
544
tree = self.make_branch_and_tree('tree')
539
545
self.build_tree(['tree/hello.txt'])
540
546
tree.add('hello.txt')
541
output, err = self.run_bzr(
547
output, err = self.run_bzr_raw(
542
548
['commit', '-m', 'hello',
543
549
u'--fixes=generic:\u20ac', 'tree/hello.txt'],
544
550
encoding='utf-8', retcode=3)
573
579
# we don't care about for this test.
574
580
last_rev = tree.branch.repository.get_revision(tree.last_revision())
575
581
properties = dict(last_rev.properties)
576
del properties['branch-nick']
582
del properties[u'branch-nick']
578
self.assertEqual({'bugs': 'https://launchpad.net/bugs/234 fixed'},
584
self.assertEqual({u'bugs': 'https://launchpad.net/bugs/234 fixed'},
581
587
def test_fixes_multiple_bugs_sets_properties(self):
593
599
del properties['branch-nick']
595
601
self.assertEqual(
596
{'bugs': 'https://launchpad.net/bugs/123 fixed\n'
602
{u'bugs': 'https://launchpad.net/bugs/123 fixed\n'
597
603
'https://launchpad.net/bugs/235 fixed'},
781
787
def setup_editor(self):
782
788
# Test that commit template hooks work
783
789
if sys.platform == "win32":
784
f = file('fed.bat', 'w')
785
f.write('@rem dummy fed')
790
with open('fed.bat', 'w') as f:
791
f.write('@rem dummy fed')
787
792
self.overrideEnv('BRZ_EDITOR', "fed.bat")
789
f = file('fed.sh', 'wb')
790
f.write('#!/bin/sh\n')
794
with open('fed.sh', 'wb') as f:
795
f.write(b'#!/bin/sh\n')
792
796
os.chmod('fed.sh', 0o755)
793
797
self.overrideEnv('BRZ_EDITOR', "./fed.sh")