~rvb/maas/transaction-1.7-bug-1409852

« back to all changes in this revision

Viewing changes to src/maasserver/models/tests/test_sshkey.py

merged upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
226
226
 
227
227
    def test_sshkey_validation_with_valid_key(self):
228
228
        key_string = get_data('data/test_rsa0.pub')
229
 
        user = factory.make_user()
 
229
        user = factory.make_User()
230
230
        key = SSHKey(key=key_string, user=user)
231
231
        key.full_clean()
232
232
        # No ValidationError.
233
233
 
234
234
    def test_sshkey_validation_fails_if_key_is_invalid(self):
235
235
        key_string = factory.make_string()
236
 
        user = factory.make_user()
 
236
        user = factory.make_User()
237
237
        key = SSHKey(key=key_string, user=user)
238
238
        self.assertRaises(
239
239
            ValidationError, key.full_clean)
241
241
    def test_sshkey_display_with_real_life_key(self):
242
242
        # With a real-life ssh-rsa key, the key_string part is cropped.
243
243
        key_string = get_data('data/test_rsa0.pub')
244
 
        user = factory.make_user()
 
244
        user = factory.make_User()
245
245
        key = SSHKey(key=key_string, user=user)
246
246
        display = key.display_html()
247
247
        self.assertEqual(
249
249
 
250
250
    def test_sshkey_display_is_marked_as_HTML_safe(self):
251
251
        key_string = get_data('data/test_rsa0.pub')
252
 
        user = factory.make_user()
 
252
        user = factory.make_User()
253
253
        key = SSHKey(key=key_string, user=user)
254
254
        display = key.display_html()
255
255
        self.assertIsInstance(display, SafeUnicode)
256
256
 
257
257
    def test_sshkey_user_and_key_unique_together(self):
258
258
        key_string = get_data('data/test_rsa0.pub')
259
 
        user = factory.make_user()
 
259
        user = factory.make_User()
260
260
        key = SSHKey(key=key_string, user=user)
261
261
        key.save()
262
262
        key2 = SSHKey(key=key_string, user=user)
267
267
        # Even if we hack our way around model-level checks, uniqueness
268
268
        # of the user/key combination is enforced at the database level.
269
269
        key_string = get_data('data/test_rsa0.pub')
270
 
        user = factory.make_user()
 
270
        user = factory.make_User()
271
271
        existing_key = SSHKey(key=key_string, user=user)
272
272
        existing_key.save()
273
273
        # The trick to hack around the model-level checks: create a
274
274
        # duplicate key for another user, then attach it to the same
275
275
        # user as the existing key by updating it directly in the
276
276
        # database.
277
 
        redundant_key = SSHKey(key=key_string, user=factory.make_user())
 
277
        redundant_key = SSHKey(key=key_string, user=factory.make_User())
278
278
        redundant_key.save()
279
279
        self.assertRaises(
280
280
            IntegrityError,
283
283
 
284
284
    def test_sshkey_same_key_can_be_used_by_different_users(self):
285
285
        key_string = get_data('data/test_rsa0.pub')
286
 
        user = factory.make_user()
 
286
        user = factory.make_User()
287
287
        key = SSHKey(key=key_string, user=user)
288
288
        key.save()
289
 
        user2 = factory.make_user()
 
289
        user2 = factory.make_User()
290
290
        key2 = SSHKey(key=key_string, user=user2)
291
291
        key2.full_clean()
292
292
        # No ValidationError.
296
296
    """Testing for the :class:`SSHKeyManager` model manager."""
297
297
 
298
298
    def test_get_keys_for_user_no_keys(self):
299
 
        user = factory.make_user()
 
299
        user = factory.make_User()
300
300
        keys = SSHKey.objects.get_keys_for_user(user)
301
301
        self.assertItemsEqual([], keys)
302
302