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

  • Committer: Vincent Ladeuil
  • Date: 2009-10-06 14:40:37 UTC
  • mto: (4728.1.2 integration)
  • mto: This revision was merged to the branch mainline in revision 4731.
  • Revision ID: v.ladeuil+lp@free.fr-20091006144037-o76rgosv9hj3td0y
Simplify mutable_tree.has_changes() and update call sites.

* bzrlib/workingtree.py:
(WorkingTree.merge_from_branch): Add a force parameter. Replace
the check_basis() call by the corresponding code, taken the new
'force' parameter into account.

* bzrlib/tests/test_status.py:
(TestStatus.make_multiple_pending_tree): Add force=True on
supplementary merges.

* bzrlib/tests/test_reconfigure.py:
(TestReconfigure): Add a test for pending merges.

* bzrlib/tests/test_msgeditor.py:
(MsgEditorTest.make_multiple_pending_tree): Add force=True on
supplementary merges.

* bzrlib/tests/blackbox/test_uncommit.py:
(TestUncommit.test_uncommit_octopus_merge): Add force=True on
supplementary merges.

* bzrlib/send.py:
(send): Use the simplified has_changes(). Fix typo in comment too.

* bzrlib/reconfigure.py:
(Reconfigure._check): Use the simplified has_changes().

* bzrlib/mutabletree.py:
(MutableTree.has_changes): Make the tree parameter optional but
retain it for tests. Add a pending merges check.

* bzrlib/merge.py:
(Merger.ensure_revision_trees, Merger.file_revisions,
Merger.check_basis, Merger.compare_basis): Deprecate.

* bzrlib/bundle/apply_bundle.py:
(merge_bundle): Replace the check_basis() call by the
corresponding code.

* bzrlib/builtins.py:
(cmd_remove_tree.run, cmd_push.run, cmd_merge.run): Use the
simplified has_changes().
(cmd_merge.run): Replace the check_basis call() by the corresponding
code (minus the alredy done has_changes() check).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2009, 2010 Canonical Ltd
 
1
# Copyright (C) 2009 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
18
18
from StringIO import StringIO
19
19
import sys
20
20
 
21
 
 
22
 
import os
23
 
 
24
 
 
25
21
from bzrlib import (
26
 
    config,
27
22
    crash,
28
 
    osutils,
29
 
    symbol_versioning,
30
23
    tests,
31
24
    )
32
25
 
33
26
from bzrlib.tests import features
34
27
 
35
28
 
36
 
class TestApportReporting(tests.TestCaseInTempDir):
37
 
 
38
 
    _test_needs_features = [features.apport]
39
 
 
40
 
    def test_apport_report(self):
41
 
        crash_dir = osutils.joinpath((self.test_base_dir, 'crash'))
42
 
        os.mkdir(crash_dir)
43
 
        os.environ['APPORT_CRASH_DIR'] = crash_dir
44
 
        self.assertEquals(crash_dir, config.crash_dir())
45
 
 
46
 
        stderr = StringIO()
47
 
 
 
29
class TestApportReporting(tests.TestCase):
 
30
 
 
31
    _test_needs_features = [features.ApportFeature]
 
32
 
 
33
    def test_apport_report_contents(self):
48
34
        try:
49
35
            raise AssertionError("my error")
50
36
        except AssertionError, e:
51
37
            pass
52
 
 
53
 
        crash_filename = crash.report_bug_to_apport(sys.exc_info(),
54
 
            stderr)
55
 
 
56
 
        # message explaining the crash
57
 
        self.assertContainsRe(stderr.getvalue(),
58
 
            "    apport-bug %s" % crash_filename)
59
 
 
60
 
        crash_file = open(crash_filename)
61
 
        try:
62
 
            report = crash_file.read()
63
 
        finally:
64
 
            crash_file.close()
65
 
 
66
 
        self.assertContainsRe(report,
67
 
            '(?m)^BzrVersion:') # should be in the traceback
 
38
        outf = StringIO()
 
39
        crash._write_apport_report_to_file(sys.exc_info(), outf)
 
40
        report = outf.getvalue()
 
41
 
 
42
        self.assertContainsRe(report, '(?m)^BzrVersion:')
 
43
        # should be in the traceback
68
44
        self.assertContainsRe(report, 'my error')
69
45
        self.assertContainsRe(report, 'AssertionError')
70
 
        # see https://bugs.launchpad.net/bzr/+bug/528114
71
 
        self.assertContainsRe(report, 'ExecutablePath')
72
 
        self.assertContainsRe(report, 'test_apport_report')
 
46
        self.assertContainsRe(report, 'test_apport_report_contents')
73
47
        # should also be in there
74
48
        self.assertContainsRe(report, '(?m)^CommandLine:')