120
120
for user in users:
121
121
fake_client = fake_juju_client()
122
122
fake_admin_client = fake_juju_client()
123
ac = patch("assess_user_grant_revoke.assert_admin_controller",
123
ac = patch("assess_user_grant_revoke.assert_admin_model",
124
124
return_value=True)
125
125
with patch("jujupy.EnvJujuClient.revoke", return_value=True):
126
126
with patch("assess_user_grant_revoke.assert_read_model",
149
149
def test_assert_write_model(self):
150
150
fake_client = fake_juju_client()
151
151
with patch.object(fake_client, 'wait_for_started'):
152
with patch.object(fake_client, 'deploy', return_value=True):
154
fake_client, 'remove_service', autospec=True):
155
assert_write_model(fake_client, 'write', True)
152
with patch.object(fake_client, 'juju', return_value=True):
153
assert_write_model(fake_client, 'write', True)
156
154
with self.assertRaises(JujuAssertionError):
157
with patch.object(fake_client, 'remove_service',
159
assert_write_model(fake_client, 'write', False)
155
assert_write_model(fake_client, 'write', False)
160
156
deploy_side_effect = CalledProcessError(None, None, None)
161
with patch.object(fake_client, 'deploy', return_value=False,
157
with patch.object(fake_client, 'juju', return_value=False,
162
158
side_effect=deploy_side_effect):
163
159
assert_write_model(fake_client, 'write', False)
164
160
with self.assertRaises(JujuAssertionError):
165
with patch.object(fake_client, 'remove_service',
167
assert_write_model(fake_client, 'write', True)
161
assert_write_model(fake_client, 'write', True)
170
164
def make_fake_client():
197
191
write = patch("assess_user_grant_revoke.assert_write_model",
199
admin = patch("assess_user_grant_revoke.assert_admin_controller",
193
admin = patch("assess_user_grant_revoke.assert_admin_model",
201
rm = patch("assess_user_grant_revoke.wait_for_removed_services",
203
195
with cpass as pass_mock, able as able_mock, log as log_mock:
204
196
with read as read_mock, write as write_mock, admin as admin_mock:
205
197
with expect as expect_mock:
206
198
expect_mock.return_value.isalive.return_value = False
208
assess_user_grant_revoke(fake_client)
210
self.assertEqual(pass_mock.call_count, 1)
211
self.assertEqual(able_mock.call_count, 1)
212
self.assertEqual(log_mock.call_count, 1)
214
self.assertEqual(read_mock.call_count, 6)
215
self.assertEqual(write_mock.call_count, 6)
216
self.assertEqual(admin_mock.call_count, 6)
219
call[0][2] for call in
220
read_mock.call_args_list]
222
call[0][2] for call in
223
write_mock.call_args_list]
225
call[0][2] for call in
226
admin_mock.call_args_list]
228
self.assertEqual(read_calls,
230
self.assertEqual(write_calls,
232
self.assertEqual(admin_calls,
199
assess_user_grant_revoke(fake_client)
201
self.assertEqual(pass_mock.call_count, 1)
202
self.assertEqual(able_mock.call_count, 1)
203
self.assertEqual(log_mock.call_count, 1)
205
self.assertEqual(read_mock.call_count, 6)
206
self.assertEqual(write_mock.call_count, 6)
207
self.assertEqual(admin_mock.call_count, 6)
210
call[0][2] for call in
211
read_mock.call_args_list]
213
call[0][2] for call in
214
write_mock.call_args_list]
216
call[0][3] for call in
217
admin_mock.call_args_list]
219
self.assertEqual(read_calls,
221
self.assertEqual(write_calls,
223
self.assertEqual(admin_calls,