~nataliabidart/ubuntu-sso-client/stable-3-0-update-2.99.90

« back to all changes in this revision

Viewing changes to ubuntu_sso/qt/tests/test_reset_password.py

  • Committer: Natalia B. Bidart
  • Date: 2012-03-06 14:53:38 UTC
  • mfrom: (812.1.89 ubuntu-sso-client)
  • Revision ID: natalia.bidart@canonical.com-20120306145338-x28na428035jkqwh
- Updating from trunk up to revno 901.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
# pylint: disable=F0401,E0611,E1101
19
19
 
20
20
from PyQt4 import QtGui, QtCore
21
 
from twisted.internet import defer
22
21
 
23
22
from ubuntu_sso.utils.ui import (
24
23
    PASSWORD1_ENTRY,
25
24
    PASSWORD2_ENTRY,
26
 
    RESET_CODE_ENTRY)
27
 
from ubuntu_sso.qt import gui
 
25
    RESET_CODE_ENTRY,
 
26
)
28
27
from ubuntu_sso.qt import common
29
28
from ubuntu_sso.qt.reset_password_page import (
30
29
    ResetPasswordPage,
31
30
    RESET_SUBTITLE,
32
31
    RESET_TITLE,
33
32
)
34
 
from ubuntu_sso.qt.ui.reset_password_ui import Ui_ResetPasswordPage
35
 
from ubuntu_sso.qt.tests import (
36
 
    BaseTestCase,
37
 
    FakedBackend,
38
 
    FakedObject,
39
 
    FakeWizard,
40
 
)
41
 
 
42
 
 
43
 
class FakePasswordAssistance(object):
44
 
    """Fake password_assistance_* calls."""
45
 
 
46
 
    _called = False
47
 
 
48
 
    def call(self, *args, **kwargs):
49
 
        """Check if the method was called."""
50
 
        FakePasswordAssistance._called = True
51
 
 
52
 
    def clenaup(self):
53
 
        """Clean up the variable."""
54
 
        FakePasswordAssistance._called = False
 
33
from ubuntu_sso.qt.tests import PageBaseTestCase
55
34
 
56
35
 
57
36
# We need this Fake until a future refactor.
75
54
        return self.line_text
76
55
 
77
56
 
78
 
class ResetPasswordTestCase(BaseTestCase):
 
57
class ResetPasswordTestCase(PageBaseTestCase):
79
58
    """Test the ResetPasswordPage code."""
80
59
 
81
 
    @defer.inlineCallbacks
82
 
    def setUp(self):
83
 
        yield super(ResetPasswordTestCase, self).setUp()
84
 
        self.patch(gui.main, "get_sso_client", FakedBackend)
85
 
        self.app_name = 'my_app'
86
 
        self.ui = ResetPasswordPage(Ui_ResetPasswordPage(),
87
 
                                                app_name=self.app_name,
88
 
                                                parent=None)
89
 
        self.wizard = FakeWizard()
90
 
        self.patch(self.ui, 'wizard', lambda: self.wizard)
91
 
        self.fake = FakePasswordAssistance()
 
60
    ui_class = ResetPasswordPage
 
61
    ui_signals = ('passwordChanged',)
 
62
    ui_backend_siganls = ('PasswordChanged', 'PasswordChangeError')
92
63
 
93
 
    def test_init(self):
 
64
    def test_password_line(self):
94
65
        """Check the initial state of ResetPassword."""
95
66
        self.assertEqual(self.ui.ui.password_line_edit.receivers(
96
67
            QtCore.SIGNAL('textEdited(QString)')), 1)
102
73
        self.ui.show()
103
74
        self.ui.initializePage()
104
75
        self.addCleanup(self.ui.hide)
105
 
        self.assertEqual(self.ui.header.title_label.text(), RESET_TITLE)
106
 
        self.assertEqual(self.ui.header.subtitle_label.text(),
107
 
            RESET_SUBTITLE)
 
76
        self.assert_title_correct(RESET_TITLE)
 
77
        self.assert_subtitle_correct(RESET_SUBTITLE)
108
78
        self.assertEqual(self.ui.ui.password_label.text(), PASSWORD1_ENTRY)
109
79
        self.assertEqual(self.ui.ui.confirm_password_label.text(),
110
80
            PASSWORD2_ENTRY)
131
101
 
132
102
    def test_focus_changed_1(self):
133
103
        """Check functions execution when focus_changed() is executed."""
134
 
        self.patch(common, 'password_default_assistance', self.fake.call)
135
 
        self.addCleanup(self.fake.clenaup)
 
104
        self.patch(common, 'password_default_assistance', self._set_called)
 
105
 
136
106
        self.ui.show()
137
107
        self.addCleanup(self.ui.hide)
138
 
        self.assertFalse(FakePasswordAssistance._called)
 
108
 
 
109
        self.assertFalse(self._called)
139
110
        self.ui.focus_changed(None, self.ui.ui.password_line_edit)
140
111
        self.assertTrue(self.ui.ui.password_assistance.isVisible())
141
 
        self.assertTrue(FakePasswordAssistance._called)
 
112
        self.assertTrue(self._called)
142
113
 
143
114
    def test_focus_changed_2(self):
144
115
        """Check functions execution when focus_changed() is executed."""
145
 
        self.patch(common, 'password_check_match', self.fake.call)
146
 
        self.addCleanup(self.fake.clenaup)
 
116
        self.patch(common, 'password_check_match', self._set_called)
 
117
 
147
118
        self.ui.show()
148
119
        self.addCleanup(self.ui.hide)
149
 
        self.assertFalse(FakePasswordAssistance._called)
 
120
 
 
121
        self.assertFalse(self._called)
150
122
        self.ui.focus_changed(None, self.ui.ui.confirm_password_line_edit)
151
123
        self.assertTrue(self.ui.ui.password_assistance.isVisible())
152
 
        self.assertTrue(FakePasswordAssistance._called)
 
124
        self.assertTrue(self._called)
153
125
 
154
126
    # pylint: enable=W0212
155
127
 
156
128
    def test_set_new_password(self):
157
129
        """Test set_new_password method."""
 
130
        self.patch(self.ui, "hide_error", self._set_called)
158
131
        email = 'email@example.com'
159
132
        code = 'code'
160
133
        password = 'password'
161
134
        forgotten = FakeForgottenPage()
162
135
        forgotten.setText(email)
163
136
        self.patch(self.wizard, "forgotten", forgotten)
164
 
        exposed_methods = ['set_new_password']
165
 
        self.patch(FakedObject, "exposed_methods", exposed_methods)
166
 
        faked_object = FakedObject()
167
 
        self.patch(self.ui, "backend", faked_object)
168
137
        self.ui.ui.reset_code_line_edit.setText(code)
169
138
        self.ui.ui.password_line_edit.setText(password)
 
139
 
170
140
        self.ui.set_new_password()
 
141
 
171
142
        self.assert_backend_called('set_new_password',
172
143
            self.app_name, email, code, password)
 
144
        expected = ((), {})
 
145
        self.assertEqual(expected, self._called)