def test_get_works(self):
     self.fake_client_set.compute.security_groups._list(
         '/servers/%s/os-security-groups' % self.server.id,
         'security_groups').AndReturn([self.sg2, self.sg])
     ifwrs.assert_admin_or_project_user(
         'PID', eperm_status=404)
     ifwrs.link_for_security_group(self.sg).AndReturn('REPLY')
     self.mox.ReplayAll()
     rv = self.client.get('/v1/instances/%s/fw-rule-sets/%s'
                          % (self.server.id, u'2'))
     data = self.check_and_parse_response(rv)
     self.assertEquals(data, 'REPLY')
    def test_add_works(self):
        compute = self.fake_client_set.compute
        tcs = mock_client_set(self.mox)

        compute.servers.get(self.server.id).AndReturn(self.server)
        compute.security_groups.get(self.sg_id).AndReturn(self.sg)
        ifwrs.client_set_for_tenant(self.server.tenant_id,
                                              fallback_to_api=True) \
                .AndReturn(tcs)
        tcs.compute.servers.add_security_group(self.server, self.sg.name)
        ifwrs.link_for_security_group(self.sg).AndReturn('REPLY')

        self.mox.ReplayAll()
        data = self.interact()
        self.assertEquals(data, 'REPLY')
    def test_list_works(self):

        self.fake_client_set.compute.security_groups._list(
            '/servers/%s/os-security-groups' % self.server.id,
            'security_groups').AndReturn([self.sg, self.sg2])

        ifwrs.assert_admin_or_project_user(
            'PID', eperm_status=404)
        ifwrs.link_for_security_group(self.sg).AndReturn(u'L1')
        ifwrs.link_for_security_group(self.sg2).AndReturn(u'L2')

        expected = {
            'collection': {
                'parent-href': '/v1/instances/%s' % self.server.id,
                'name': 'fw-rule-sets',
                'size': 2
            },
            'fw-rule-sets': [u'L1', u'L2']
        }

        self.mox.ReplayAll()
        rv = self.client.get('/v1/instances/%s/fw-rule-sets/' % self.server.id)
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, expected)