def test_describe_account_attributes(self):
        self.nova.quotas.get.return_value = mock.Mock(instances=77)

        availability_zone.account_attribute_engine = (
            availability_zone.AccountAttributeEngineNeutron())
        resp = self.execute('DescribeAccountAttributes', {})
        self.assertThat(resp['accountAttributeSet'],
                        matchers.ListMatches(
                            [{'attributeName': 'supported-platforms',
                              'attributeValueSet': [
                                  {'attributeValue': 'EC2'},
                                  {'attributeValue': 'VPC'}]},
                             {'attributeName': 'default-vpc',
                              'attributeValueSet': [
                                  {'attributeValue': 'none'}]},
                             {'attributeName': 'max-instances',
                              'attributeValueSet': [
                                  {'attributeValue': 77}]}],
                            orderless_lists=True))
        self.nova.quotas.get.assert_called_once_with(
            fakes.ID_OS_PROJECT, fakes.ID_OS_USER)

        availability_zone.account_attribute_engine = (
            availability_zone.AccountAttributeEngineNova())
        resp = self.execute('DescribeAccountAttributes', {})
        self.assertThat(resp['accountAttributeSet'],
                        matchers.ListMatches(
                            [{'attributeName': 'supported-platforms',
                              'attributeValueSet': [
                                  {'attributeValue': 'EC2'}]},
                             {'attributeName': 'default-vpc',
                              'attributeValueSet': [
                                  {'attributeValue': 'none'}]},
                             {'attributeName': 'max-instances',
                              'attributeValueSet': [
                                  {'attributeValue': 77}]}],
                            orderless_lists=True))

        resp = self.execute('DescribeAccountAttributes',
                            {'AttributeName.1': 'default-vpc',
                             'AttributeName.2': 'max-instances'})
        self.assertThat(resp['accountAttributeSet'],
                        matchers.ListMatches(
                            [{'attributeName': 'default-vpc',
                              'attributeValueSet': [
                                  {'attributeValue': 'none'}]},
                             {'attributeName': 'max-instances',
                              'attributeValueSet': [
                                  {'attributeValue': 77}]}],
                            orderless_lists=True))

        self.assert_execution_error('InvalidParameter',
                                    'DescribeAccountAttributes',
                                    {'AttributeName.1': 'fake'})
 def _reset_engine(self):
     availability_zone.account_attribute_engine = (
         availability_zone.AccountAttributeEngineNeutron())