/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
3959.1.1 by Martin Pool
Remove redundant description of debug flags from debug.py
1
# Copyright (C) 2005, 2006, 2009 Canonical Ltd
2095.5.2 by Martin Pool
save commit message if commit fails (#32054)
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2095.5.2 by Martin Pool
save commit message if commit fails (#32054)
16
2555.3.22 by Martin Pool
hook docs
17
"""Set of flags that enable different debug behaviour.
18
4070.8.3 by Martin Pool
Finish debug_flags support and add a test case
19
These are set with eg ``-Dlock`` on the bzr command line or in
6740.1.1 by Jelmer Vernooij
Rename bazaar.conf to breezy.conf.
20
~/.config/breezy/breezy.conf debug_flags.
2555.3.22 by Martin Pool
hook docs
21
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
22
See `bzr help debug-flags` or `breezy/help_topics/en/debug-flags.txt`
3959.1.1 by Martin Pool
Remove redundant description of debug flags from debug.py
23
for a list of the available options.
2555.3.22 by Martin Pool
hook docs
24
"""
3959.1.5 by Martin Pool
pep8 correctness (maybe) for global variables
25
26
debug_flags = set()
4070.8.2 by Martin Pool
Initial support for debug_flags config option
27
28
29
def set_debug_flags_from_config():
30
    """Turn on debug flags based on the global configuration"""
31
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
32
    from breezy import config
4070.8.2 by Martin Pool
Initial support for debug_flags config option
33
6059.4.5 by Vincent Ladeuil
Migrate debug_flags to stack-based config.
34
    c = config.GlobalStack()
35
    for f in c.get('debug_flags'):
36
        debug_flags.add(f)
6082.3.1 by Vincent Ladeuil
Yes we can... debug blackbox tests interactively
37
38
6082.3.2 by Vincent Ladeuil
Simplify and fix test.debug too.
39
def set_trace():
6082.3.1 by Vincent Ladeuil
Yes we can... debug blackbox tests interactively
40
    """Pdb using original stdin and stdout.
41
42
    When debugging blackbox tests, sys.stdin and sys.stdout are captured for
43
    test purposes and cannot be used for interactive debugging. This class uses
44
    the origianl stdin/stdout to allow such use.
45
46
    Instead of doing:
47
48
       import pdb; pdb.set_trace()
49
50
    you can do:
51
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
52
       from breezy import debug; debug.set_trace()
6082.3.1 by Vincent Ladeuil
Yes we can... debug blackbox tests interactively
53
    """
6082.3.4 by Vincent Ladeuil
Delay the required imports.
54
    import pdb
55
    import sys
6082.3.2 by Vincent Ladeuil
Simplify and fix test.debug too.
56
    pdb.Pdb(stdin=sys.__stdin__, stdout=sys.__stdout__
57
            ).set_trace(sys._getframe().f_back)