Merge lp:~diegosarmentero/ubuntu-sso-client/no-mocker2 into lp:ubuntu-sso-client

Proposed by Diego Sarmentero
Status: Merged
Approved by: Natalia Bidart
Approved revision: 802
Merged at revision: 803
Proposed branch: lp:~diegosarmentero/ubuntu-sso-client/no-mocker2
Merge into: lp:ubuntu-sso-client
Diff against target: 126 lines (+65/-34)
1 file modified
ubuntu_sso/keyring/tests/test_windows.py (+65/-34)
To merge this branch: bzr merge lp:~diegosarmentero/ubuntu-sso-client/no-mocker2
Reviewer Review Type Date Requested Status
Natalia Bidart (community) Approve
Roberto Alsina (community) code review only Approve
Review via email: mp+78943@code.launchpad.net

Commit message

Migrated keyring module to No Mocker.

Description of the change

Migrated keyring module to No Mocker.

To post a comment you must log in.
Revision history for this message
Roberto Alsina (ralsina) wrote :

+1

review: Approve (code review only)
Revision history for this message
Natalia Bidart (nataliabidart) wrote :

== Python Lint Notices ==

ubuntu_sso/keyring/tests/test_windows.py:
    77: [E1103, TestWindowsKeyring.test_set_credentials] Instance of 'Deferred' has no 'data' member (but some types could not be inferred)

review: Needs Fixing
802. By Diego Sarmentero

Fixed lint issues.

Revision history for this message
Natalia Bidart (nataliabidart) wrote :

Looks great!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ubuntu_sso/keyring/tests/test_windows.py'
2--- ubuntu_sso/keyring/tests/test_windows.py 2011-04-01 08:12:51 +0000
3+++ ubuntu_sso/keyring/tests/test_windows.py 2011-10-13 12:08:23 +0000
4@@ -17,57 +17,88 @@
5 """Test the windows keyring implementation."""
6
7 from json import dumps
8-from mocker import MockerTestCase
9-from twisted.internet.defer import inlineCallbacks
10+
11 from twisted.trial.unittest import TestCase
12
13-from ubuntu_sso.keyring.windows import Keyring, USERNAME
14-
15-
16-class TestWindowsKeyring(MockerTestCase, TestCase):
17+from ubuntu_sso.keyring import windows
18+
19+
20+class FakePyKeyring(object):
21+
22+ """Fake Keyring"""
23+
24+ def __init__(self):
25+ """Initialize object."""
26+ self.data = {}
27+
28+ def set_password(self, *args):
29+ """Fake set_password for keyring."""
30+ self.data['set_password'] = args
31+ self.data['app_name'] = args[0][0]
32+ return self
33+
34+ def get_password(self, app_name, username):
35+ """Fake get_password."""
36+ self.data['get_password'] = True
37+ password = dict(password='password', app_name=app_name)
38+ return dumps(password)
39+
40+ def delete_password(self, *args):
41+ """Fake delete_password."""
42+ self.data['delete_password'] = True
43+
44+
45+class FakeDefer(object):
46+
47+ """Fake Deferred."""
48+
49+ def fake_defer_to_thread(self, func, *args):
50+ """Fake deferToThread."""
51+ return func(args)
52+
53+
54+class TestWindowsKeyring(TestCase):
55 """Test the windows keyring implementation."""
56
57 def setUp(self):
58 """Setup tests."""
59 super(TestWindowsKeyring, self).setUp()
60- self.keyring_lib = self.mocker.mock()
61- self.keyring = Keyring(self.keyring_lib)
62+ self.app_name = 'app_name'
63+ self.fake_keyring = FakePyKeyring()
64+ self.keyring = windows.Keyring(self.fake_keyring)
65+ self.fake_defer = FakeDefer()
66+ self.patch(windows, "deferToThread",
67+ self.fake_defer.fake_defer_to_thread)
68
69- @inlineCallbacks
70+ # pylint: disable=E1103
71 def test_set_credentials(self):
72 """Test setting the credentials."""
73- app_name = 'name'
74- password = dict(password='password')
75- self.keyring_lib.set_password(app_name, USERNAME, dumps(password))
76- self.mocker.replay()
77- yield self.keyring.set_credentials(app_name, password)
78+ self.keyring = windows.Keyring(self.fake_keyring)
79+ d = self.keyring.set_credentials(self.app_name, 'password')
80+ self.assertEqual(d.data['set_password'],
81+ (('app_name', 'ubuntu_sso', '"password"'), ))
82
83- @inlineCallbacks
84 def test_get_credentials(self):
85 """Test getting the credentials."""
86- app_name = 'name'
87- password = dict(password='password')
88- self.keyring_lib.get_password(app_name, USERNAME)
89- self.mocker.result(dumps(password))
90- self.mocker.replay()
91- result = yield self.keyring.get_credentials(app_name)
92- self.assertEqual(password, result)
93+ d = self.keyring.get_credentials(self.app_name)
94+ self.assertTrue('password' in d)
95+ self.assertEqual(d['password'], 'password')
96+ self.assertTrue('app_name' in d)
97+ self.assertEqual(d['app_name'], ['app_name'])
98+ self.assertTrue(self.fake_keyring.data.get('get_password', False))
99
100- @inlineCallbacks
101 def test_get_credentials_not_present(self):
102 """Test getting creds that are not present."""
103- app_name = 'name'
104- self.keyring_lib.get_password(app_name, USERNAME)
105- self.mocker.result(None)
106- self.mocker.replay()
107- result = yield self.keyring.get_credentials(app_name)
108- self.assertEqual(None, result)
109+ d = self.keyring.get_credentials('app_name_not_there')
110+ self.assertTrue('password' in d)
111+ self.assertEqual(d['password'], 'password')
112+ self.assertTrue('app_name' in d)
113+ self.assertNotEqual(d['app_name'], [self.app_name])
114+ self.assertTrue(self.fake_keyring.data.get('get_password', False))
115
116- @inlineCallbacks
117 def test_delete_credentials(self):
118 """Test deleting the credentials."""
119- app_name = 'name'
120- self.keyring_lib.delete_password(app_name, USERNAME)
121- self.mocker.replay()
122- result = yield self.keyring.delete_credentials(app_name)
123+ result = self.keyring.delete_credentials(self.app_name)
124 self.assertTrue(result is None)
125+ self.assertTrue(self.fake_keyring.data.get('delete_password', False))
126+ # pylint: enable=E1103

Subscribers

People subscribed via source and target branches