def test_get_works(self):
        self.fake_client_set.compute_ext.user_keypairs\
                .get(self.user_id, 'kp').AndReturn('K1')
        users_ssh_keys.keypair_to_view('K1').AndReturn('REPLY')

        self.mox.ReplayAll()

        rv = self.client.get('/v1/users/%s/ssh-keys/kp' % self.user_id)
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, 'REPLY')
    def test_upload_public(self):
        kp = doubles.make(self.mox, doubles.Keypair,
                          name='TestKP', public_key='PUBKEY',
                          fingerprint='FP')

        users_ssh_keys.auth.assert_admin()
        users_ssh_keys.fetch_user(self.user_id, True)
        self.fake_client_set.compute_ext.user_keypairs \
                .create(self.user_id, kp.name, 'PUBLIC') \
                .AndReturn(kp)
        users_ssh_keys.keypair_to_view(kp).AndReturn('REPLY')

        self.mox.ReplayAll()

        data = self.interact({'name': kp.name, 'public-key': 'PUBLIC'})
        self.assertEquals(data, 'REPLY')
    def test_list_works(self):
        expected = {
            'collection': {
                'name': 'ssh-keys',
                'parent-href': '/v1/users/42',
                'size': 2
            },
            'ssh-keys': ['REPLY1', 'REPLY2']
        }

        users_ssh_keys.fetch_user(self.user_id, True)
        self.fake_client_set.compute_ext.user_keypairs \
                .list(self.user_id).AndReturn(['K1', 'K2'])
        users_ssh_keys.keypair_to_view('K1').AndReturn('REPLY1')
        users_ssh_keys.keypair_to_view('K2').AndReturn('REPLY2')

        self.mox.ReplayAll()
        rv = self.client.get('/v1/users/%s/ssh-keys/' % self.user_id)
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, expected)