~ubuntu-branches/ubuntu/precise/mayavi2/precise

« back to all changes in this revision

Viewing changes to mayavi/tests/test_preferences_mirror.py

  • Committer: Bazaar Package Importer
  • Author(s): Varun Hiremath
  • Date: 2011-07-09 01:18:36 UTC
  • mfrom: (1.1.10 upstream) (2.2.3 sid)
  • Revision ID: james.westby@ubuntu.com-20110709011836-fha21zirlgkqh92s
Tags: 4.0.0-1
* New upstream release
* debian/control:
  - Bump Standards-Version to 3.9.2
  - Set X-Python-Version: 2.6, fixes FTBFS (Closes: #625148)
  - Update Depends
* Update debian/watch file
* Cleanup debian/rules file

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Author: Prabhu Ramachandran <prabhu [at] aero . iitb . ac . in>
 
2
# Copyright (c) 2008, Enthought Inc.
 
3
# License: BSD Style.
 
4
 
 
5
import unittest
 
6
from pkg_resources import resource_filename
 
7
 
 
8
from traits.api import Str, Int, Bool
 
9
from apptools.preferences.api import set_default_preferences
 
10
from apptools.preferences.api import Preferences, PreferencesHelper
 
11
from mayavi.tools.preferences_mirror import PreferencesMirror
 
12
 
 
13
 
 
14
class TestPreference(PreferencesHelper):
 
15
    """A simple test preference helper."""
 
16
    preferences_path = "test"
 
17
 
 
18
    bg = Str
 
19
    width = Int
 
20
    show = Bool
 
21
 
 
22
 
 
23
class ClassNameTest(unittest.TestCase):
 
24
    def setUp(self):
 
25
        """Called before each test is run"""
 
26
        self.preferences = set_default_preferences(Preferences())
 
27
        # The filename of the example preferences file.
 
28
        pref_file = resource_filename('mayavi.tests',
 
29
                                      'test_preference.ini')
 
30
        self.preferences.load(pref_file)
 
31
        self.pref = TestPreference()
 
32
        self.mirror = PreferencesMirror()
 
33
        self.mirror.preferences = self.pref
 
34
 
 
35
    def test_mirroring(self):
 
36
        """Are the traits properly mirrored?"""
 
37
        pref = self.pref
 
38
        mirror = self.mirror
 
39
        self.assertEqual(pref.bg, mirror.bg)
 
40
        self.assertEqual(pref.width, mirror.width)
 
41
        self.assertEqual(pref.show, mirror.show)
 
42
 
 
43
    def test_sync(self):
 
44
        """Does the mirror listen for changes on original preference."""
 
45
        pref = self.pref
 
46
        mirror = self.mirror
 
47
        # Save original state.
 
48
        saved = pref.get()
 
49
        pref.set(bg = 'white', width=20, show=True)
 
50
        self.assertEqual(pref.bg, mirror.bg)
 
51
        self.assertEqual(pref.width, mirror.width)
 
52
        self.assertEqual(pref.show, mirror.show)
 
53
        # Reset preferences back to defaults.
 
54
        pref.set(saved)
 
55
 
 
56
    def test_no_reverse_sync(self):
 
57
        """mirror must not sync changes back to the original preferences."""
 
58
        pref = self.pref
 
59
        mirror = self.mirror
 
60
        saved = pref.get()
 
61
        mirror.set(bg = 'white', width=20, show=True)
 
62
        self.assertNotEqual(pref.bg, mirror.bg)
 
63
        self.assertNotEqual(pref.width, mirror.width)
 
64
        self.assertNotEqual(pref.show, mirror.show)
 
65
        self.assertEqual(pref.bg, saved['bg'])
 
66
        self.assertEqual(pref.width, saved['width'])
 
67
        self.assertEqual(pref.show, saved['show'])
 
68
 
 
69
    def test_save(self):
 
70
        """Are Mirror's preferences saved correctly"""
 
71
        pref = self.pref
 
72
        mirror = self.mirror
 
73
        saved = pref.get()
 
74
        mirror.set(bg = 'white', width=20, show=True)
 
75
        mirror.save()
 
76
        self.assertEqual(pref.bg, mirror.bg)
 
77
        self.assertEqual(pref.width, mirror.width)
 
78
        self.assertEqual(pref.show, mirror.show)
 
79
        # Reset preferences back to defaults.
 
80
        pref.set(saved)
 
81
 
 
82
if __name__ == '__main__':
 
83
    unittest.main()
 
84