/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
5557.1.15 by John Arbash Meinel
Merge bzr.dev 5597 to resolve NEWS, aka bzr-2.3.txt
1
# Copyright (C) 2010, 2011 Canonical Ltd
5320.2.2 by Robert Collins
Move BzrLibraryState to its own module and prepare to start testing it.
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
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
"""Tests for BzrLibraryState."""
18
6622.1.1 by Jelmer Vernooij
Rename bzrlib => brzlib, bzr => brz.
19
from brzlib import (
5320.2.2 by Robert Collins
Move BzrLibraryState to its own module and prepare to start testing it.
20
    library_state,
21
    tests,
5320.2.3 by Robert Collins
Restore the original ui_factory when existing BzrLibraryState.
22
    ui as _mod_ui
5320.2.2 by Robert Collins
Move BzrLibraryState to its own module and prepare to start testing it.
23
    )
6622.1.1 by Jelmer Vernooij
Rename bzrlib => brzlib, bzr => brz.
24
from brzlib.tests import fixtures
5320.2.2 by Robert Collins
Move BzrLibraryState to its own module and prepare to start testing it.
25
26
5320.2.3 by Robert Collins
Restore the original ui_factory when existing BzrLibraryState.
27
# TODO: once sufficiently cleaned up this should be able to be TestCase.
28
class TestLibraryState(tests.TestCaseWithTransport):
5320.2.2 by Robert Collins
Move BzrLibraryState to its own module and prepare to start testing it.
29
5320.2.3 by Robert Collins
Restore the original ui_factory when existing BzrLibraryState.
30
    def test_ui_is_used(self):
31
        ui = _mod_ui.SilentUIFactory()
5320.2.5 by Robert Collins
Make bzrlib startup use a trace context manager.
32
        state = library_state.BzrLibraryState(
33
            ui=ui, trace=fixtures.RecordingContextManager())
5320.2.3 by Robert Collins
Restore the original ui_factory when existing BzrLibraryState.
34
        orig_ui = _mod_ui.ui_factory
35
        state.__enter__()
36
        try:
37
            self.assertEqual(ui, _mod_ui.ui_factory)
38
        finally:
39
            state.__exit__(None, None, None)
40
            self.assertEqual(orig_ui, _mod_ui.ui_factory)
5320.2.5 by Robert Collins
Make bzrlib startup use a trace context manager.
41
42
    def test_trace_context(self):
43
        tracer = fixtures.RecordingContextManager()
44
        ui = _mod_ui.SilentUIFactory()
45
        state = library_state.BzrLibraryState(ui=ui, trace=tracer)
46
        state.__enter__()
47
        try:
48
            self.assertEqual(['__enter__'], tracer._calls)
49
        finally:
50
            state.__exit__(None, None, None)
51
            self.assertEqual(['__enter__', '__exit__'], tracer._calls)