/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/blackbox/test_commit.py

  • Committer: Jelmer Vernooij
  • Date: 2018-11-06 01:18:08 UTC
  • mfrom: (7143 work)
  • mto: This revision was merged to the branch mainline in revision 7151.
  • Revision ID: jelmer@jelmer.uk-20181106011808-y870f4vq0ork3ahu
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
    msgeditor,
32
32
    )
33
33
from ...controldir import ControlDir
 
34
from ...sixish import PY3
34
35
from .. import (
35
36
    test_foreign,
36
37
    features,
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:',
149
151
            flags=reflags)
150
152
 
157
159
        try:
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:',
167
170
                flags=reflags)
168
171
        finally:
173
176
        tree = self.make_branch_and_tree(".")
174
177
        self.build_tree(["f"])
175
178
        tree.add(["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\"$")
179
182
 
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"])
184
187
        tree.add(["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\"$")
 
190
        if not PY3:
 
191
            self.expectFailure("Error messages are always written as UTF-8",
 
192
                self.assertNotContainsString, err, b"\xc2\xa7")
 
193
        else:
 
194
            self.assertNotContainsString(err, b"\xc2\xa7")
 
195
        self.assertContainsRe(err, b"(?m)not versioned: \"\xfd\"$")
190
196
 
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'''\
423
429
<<<<<<< TREE
424
430
first offline change in u1
425
431
=======
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']
577
583
 
578
 
        self.assertEqual({'bugs': 'https://launchpad.net/bugs/234 fixed'},
 
584
        self.assertEqual({u'bugs': 'https://launchpad.net/bugs/234 fixed'},
579
585
                         properties)
580
586
 
581
587
    def test_fixes_multiple_bugs_sets_properties(self):
593
599
        del properties['branch-nick']
594
600
 
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'},
598
604
            properties)
599
605
 
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')
786
 
            f.close()
 
790
            with open('fed.bat', 'w') as f:
 
791
                f.write('@rem dummy fed')
787
792
            self.overrideEnv('BRZ_EDITOR', "fed.bat")
788
793
        else:
789
 
            f = file('fed.sh', 'wb')
790
 
            f.write('#!/bin/sh\n')
791
 
            f.close()
 
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")
794
798