def test_list_works(self):
        tenants = (
            doubles.make(self.mox, doubles.Tenant, name='t1', id=u'PID1'),
            doubles.make(self.mox, doubles.Tenant, name='systenant', id=u'S'),
            doubles.make(self.mox, doubles.Tenant, name='t2', id=u'PID2'))

        self.fake_client_set.identity_admin.tenants.list().AndReturn(tenants)

        tcs1 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID1', fallback_to_api=True) \
                .AndReturn(tcs1)
        tcs1.compute.security_groups.list().AndReturn(['SG1', 'SG2'])
        fw_rule_sets._sg_to_view('SG1', tenants[0].name).AndReturn('REPLY1')
        fw_rule_sets._sg_to_view('SG2', tenants[0].name).AndReturn('REPLY2')

        tcs2 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID2', fallback_to_api=True) \
                .AndReturn(tcs2)
        tcs2.compute.security_groups.list().AndReturn(['SG3'])
        fw_rule_sets._sg_to_view('SG3', tenants[2].name).AndReturn('REPLY3')

        expected = {
            'collection': {
                'name': 'fw-rule-sets',
                'size': 3
            },
            'fw-rule-sets': ['REPLY1', 'REPLY2', 'REPLY3']
        }

        self.mox.ReplayAll()
        rv = self.client.get('/v1/fw-rule-sets/')
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, expected)
    def test_create_no_description(self):
        params = {'project': u'TENANT', 'name': u'Test SG'}
        tcs = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'TENANT', fallback_to_api=True,
                                           eperm_status=404) \
                .AndReturn(tcs)
        tcs.compute.security_groups.create(name=u'Test SG',
                                           description='').AndReturn('SG')
        fw_rule_sets._sg_to_view('SG').AndReturn('REPLY')

        self.mox.ReplayAll()

        data = self.interact(params)
        self.assertEquals(data, 'REPLY')
    def test_list_for_my_projects(self):
        tenant = doubles.make(self.mox, doubles.Tenant, name='t1', id=u'PID1')

        self.fake_client_set.identity_public.tenants.list().AndReturn([tenant])

        tcs1 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID1', fallback_to_api=True) \
                .AndReturn(tcs1)
        tcs1.compute.security_groups.list().AndReturn(['SG1'])
        fw_rule_sets._sg_to_view('SG1', tenant.name).AndReturn('REPLY1')

        self.mox.ReplayAll()
        rv = self.client.get('/v1/fw-rule-sets/?my-projects=true')
        data = self.check_and_parse_response(rv)
        self.assertEquals(data.get('fw-rule-sets'), ['REPLY1'])
    def test_list_for_my_projects(self):
        tenant = doubles.make(self.mox, doubles.Tenant,
                              name='t1', id=u'PID1')

        self.fake_client_set.identity_public.tenants.list().AndReturn([tenant])

        tcs1 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID1', fallback_to_api=True) \
                .AndReturn(tcs1)
        tcs1.compute.security_groups.list().AndReturn(['SG1'])
        fw_rule_sets._sg_to_view('SG1', tenant.name).AndReturn('REPLY1')

        self.mox.ReplayAll()
        rv = self.client.get('/v1/fw-rule-sets/?my-projects=true')
        data = self.check_and_parse_response(rv)
        self.assertEquals(data.get('fw-rule-sets'), ['REPLY1'])
    def test_create_no_description(self):
        params = {
            'project': u'TENANT',
            'name': u'Test SG'
        }
        tcs = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'TENANT', fallback_to_api=True,
                                           eperm_status=404) \
                .AndReturn(tcs)
        tcs.compute.security_groups.create(
            name=u'Test SG', description='').AndReturn('SG')
        fw_rule_sets._sg_to_view('SG').AndReturn('REPLY')

        self.mox.ReplayAll()

        data = self.interact(params)
        self.assertEquals(data, 'REPLY')
    def test_list_works(self):
        tenants = (doubles.make(self.mox,
                                doubles.Tenant,
                                name='t1',
                                id=u'PID1'),
                   doubles.make(self.mox,
                                doubles.Tenant,
                                name='systenant',
                                id=u'S'),
                   doubles.make(self.mox,
                                doubles.Tenant,
                                name='t2',
                                id=u'PID2'))

        self.fake_client_set.identity_admin.tenants.list().AndReturn(tenants)

        tcs1 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID1', fallback_to_api=True) \
                .AndReturn(tcs1)
        tcs1.compute.security_groups.list().AndReturn(['SG1', 'SG2'])
        fw_rule_sets._sg_to_view('SG1', tenants[0].name).AndReturn('REPLY1')
        fw_rule_sets._sg_to_view('SG2', tenants[0].name).AndReturn('REPLY2')

        tcs2 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID2', fallback_to_api=True) \
                .AndReturn(tcs2)
        tcs2.compute.security_groups.list().AndReturn(['SG3'])
        fw_rule_sets._sg_to_view('SG3', tenants[2].name).AndReturn('REPLY3')

        expected = {
            'collection': {
                'name': 'fw-rule-sets',
                'size': 3
            },
            'fw-rule-sets': ['REPLY1', 'REPLY2', 'REPLY3']
        }

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