/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz
633 by Vincent Ladeuil
Reproduce bug #373157 root cause.
1
# Copyright (C) 2009 Canonical Ltd
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
"""Test the annotate configuration functionality."""
18
775.1.2 by Curtis Hovey
Replace unsupports notify event with an new strategy to set and pane size
19
import os
20
633 by Vincent Ladeuil
Reproduce bug #373157 root cause.
21
from bzrlib import (
22
    tests,
23
    )
24
25
from bzrlib.plugins.gtk.annotate import (
26
    config,
27
    gannotate,
28
    )
775.1.2 by Curtis Hovey
Replace unsupports notify event with an new strategy to set and pane size
29
from bzrlib.plugins.gtk.annotate.config import gannotate_config_filename
633 by Vincent Ladeuil
Reproduce bug #373157 root cause.
30
734.1.30 by Curtis Hovey
Update tests to get the correct icon when bzr-gtk is not installed.
31
633 by Vincent Ladeuil
Reproduce bug #373157 root cause.
32
class TestConfig(tests.TestCaseInTempDir):
33
34
    def setUp(self):
734.1.30 by Curtis Hovey
Update tests to get the correct icon when bzr-gtk is not installed.
35
        # Create an instance before the env is changed so that
36
        # icon lookups work.
37
        self.window = gannotate.GAnnotateWindow()
633 by Vincent Ladeuil
Reproduce bug #373157 root cause.
38
        super(TestConfig, self).setUp()
737.1.1 by Curtis Hovey
Backport gtk3 test suite fixes.
39
734.1.34 by Curtis Hovey
Ensure the avatar threads are stopped when the widget is destroyed.
40
    def tearDown(self):
41
        self.window.destroy()
42
        super(TestConfig, self).tearDown()
43
633 by Vincent Ladeuil
Reproduce bug #373157 root cause.
44
    def test_create_initial_config(self):
45
        """We can create a config even without a prior conf file"""
46
        conf = config.GAnnotateConfig(self.window)
47
        # We can access the default values (we just pick a random one)
48
        width = conf['window']['width']
49
        # configobj presents attributes as strings only
50
        self.assertIsInstance(width, str)
775.1.2 by Curtis Hovey
Replace unsupports notify event with an new strategy to set and pane size
51
52
    def test_write(self):
775.1.3 by Curtis Hovey
Verify the config data was written to file.
53
        """The window state and pane position is saved."""
775.1.2 by Curtis Hovey
Replace unsupports notify event with an new strategy to set and pane size
54
        conf = config.GAnnotateConfig(self.window)
55
        self.window.pane.set_position(200)
56
        self.assertIs(False, conf._write())
57
        self.assertEqual(200, conf['window']['pane_position'])
775.1.3 by Curtis Hovey
Verify the config data was written to file.
58
        config_path = gannotate_config_filename()
59
        self.assertIs(True, os.path.isfile(config_path))
60
        with open(config_path) as config_file:
61
            config_data = config_file.read()
62
        self.assertIn('pane_position = 200', config_data)