/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 bzrlib/tests/test_msgeditor.py

  • Committer: John Arbash Meinel
  • Date: 2009-07-31 17:42:29 UTC
  • mto: This revision was merged to the branch mainline in revision 4611.
  • Revision ID: john@arbash-meinel.com-20090731174229-w2zdsdlfpeddk8gl
Now we got to the per-workingtree tests, etc.

The main causes seem to break down into:
  bzrdir.clone() is known to be broken wrt locking, this effects
  everything that tries to 'push'

  shelf code is not compatible with strict locking

  merge code seems to have an issue. This might actually be the
  root cause of the clone() problems.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
35
35
    edit_commit_message_encoded
36
36
)
37
37
from bzrlib.tests import (
38
 
    TestCaseInTempDir,
39
38
    TestCaseWithTransport,
40
39
    TestNotApplicable,
41
40
    TestSkipped,
82
81
 
83
82
    def make_multiple_pending_tree(self):
84
83
        from bzrlib import config
 
84
        self.thisFailsStrictLockCheck() # clone?
85
85
        config.GlobalConfig().set_user_option('email',
86
86
                                              'Bilbo Baggins <bb@hobbit.net>')
87
87
        tree = self.make_branch_and_tree('a')
94
94
        tree3.commit('Feature Y, based on initial X work.',
95
95
                     timestamp=1233285960, timezone=0)
96
96
        tree.merge_from_branch(tree2.branch)
97
 
        tree.merge_from_branch(tree3.branch, force=True)
 
97
        tree.merge_from_branch(tree3.branch)
98
98
        return tree
99
99
 
100
100
    def test_commit_template_pending_merges(self):
291
291
        # Call _run_editor, capturing mutter.warning calls.
292
292
        warnings = []
293
293
        def warning(*args):
294
 
            if len(args) > 1:
295
 
                warnings.append(args[0] % args[1:])
296
 
            else:
297
 
                warnings.append(args[0])
 
294
            warnings.append(args[0] % args[1:])
298
295
        _warning = trace.warning
299
296
        trace.warning = warning
300
297
        try:
360
357
            msgeditor.generate_commit_message_template(commit_obj))
361
358
 
362
359
    def test_generate_commit_message_template_hook(self):
 
360
        def restoreDefaults():
 
361
            msgeditor.hooks['commit_message_template'] = []
 
362
        self.addCleanup(restoreDefaults)
363
363
        msgeditor.hooks.install_named_hook("commit_message_template",
364
364
                lambda commit_obj, msg: "save me some typing\n", None)
365
365
        commit_obj = commit.Commit()
366
366
        self.assertEquals("save me some typing\n",
367
367
            msgeditor.generate_commit_message_template(commit_obj))
368
 
 
369
 
 
370
 
# GZ 2009-11-17: This wants moving to osutils when the errno checking code is
371
 
class TestPlatformErrnoWorkarounds(TestCaseInTempDir):
372
 
    """Ensuring workarounds enshrined in code actually serve a purpose"""
373
 
 
374
 
    def test_subprocess_call_bad_file(self):
375
 
        if sys.platform != "win32":
376
 
            raise TestNotApplicable("Workarounds for windows only")
377
 
        import subprocess, errno
378
 
        ERROR_BAD_EXE_FORMAT = 193
379
 
        file("textfile.txt", "w").close()
380
 
        e = self.assertRaises(WindowsError, subprocess.call, "textfile.txt")
381
 
        # Python2.4 used the 'winerror' as the errno, which confuses a lot of
382
 
        # our error trapping code. Make sure that we understand the mapping
383
 
        # correctly.
384
 
        if sys.version_info >= (2, 5):
385
 
            self.assertEqual(e.errno, errno.ENOEXEC)
386
 
            self.assertEqual(e.winerror, ERROR_BAD_EXE_FORMAT)
387
 
        else:
388
 
            self.assertEqual(e.errno, ERROR_BAD_EXE_FORMAT)