This file is indexed.

/usr/lib/python2.7/dist-packages/neutronclient/tests/unit/test_cli20_purge.py is in python-neutronclient 1:6.0.0-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
# Copyright 2016 Cisco Systems
# All Rights Reserved
#
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.
#

import sys

from neutronclient.neutron.v2_0 import purge
from neutronclient.tests.unit import test_cli20


class CLITestV20Purge(test_cli20.CLITestV20Base):

    def setUp(self):
        super(CLITestV20Purge, self).setUp()
        self.resource_types = ['floatingip', 'port', 'router',
                               'network', 'security_group']

    def _generate_resources_dict(self, value=0):
        resources_dict = {}
        resources_dict['true'] = value
        for resource_type in self.resource_types:
            resources_dict[resource_type] = value
        return resources_dict

    def _verify_suffix(self, resources, message):
        for resource, value in resources.items():
            if value > 0:
                suffix = list('%(value)d %(resource)s' %
                              {'value': value, 'resource': resource})
                if value != 1:
                    suffix.append('s')
                suffix = ''.join(suffix)
                self.assertIn(suffix, message)
            else:
                self.assertNotIn(resource, message)

    def _verify_message(self, message, deleted, failed):
        message = message.split('.')
        success_prefix = "Deleted "
        failure_prefix = "The following resources could not be deleted: "
        if not deleted['true']:
            for msg in message:
                self.assertNotIn(success_prefix, msg)
            message = message[0]
            if not failed['true']:
                expected = 'Tenant has no supported resources'
                self.assertEqual(expected, message)
            else:
                self.assertIn(failure_prefix, message)
                self._verify_suffix(failed, message)
        else:
            resources_deleted = message[0]
            self.assertIn(success_prefix, resources_deleted)
            self._verify_suffix(deleted, resources_deleted)
            if failed['true']:
                resources_failed = message[1]
                self.assertIn(failure_prefix, resources_failed)
                self._verify_suffix(failed, resources_failed)
            else:
                for msg in message:
                    self.assertNotIn(failure_prefix, msg)

    def _verify_result(self, my_purge, deleted, failed):
        message = my_purge._build_message(deleted, failed, failed['true'])
        self._verify_message(message, deleted, failed)

    def test_build_message(self):
        my_purge = purge.Purge(test_cli20.MyApp(sys.stdout), None)

        # Verify message when tenant has no supported resources
        deleted = self._generate_resources_dict()
        failed = self._generate_resources_dict()
        self._verify_result(my_purge, deleted, failed)

        # Verify message when tenant has supported resources,
        # and they are all deleteable
        deleted = self._generate_resources_dict(1)
        self._verify_result(my_purge, deleted, failed)

        # Verify message when tenant has supported resources,
        # and some are not deleteable
        failed = self._generate_resources_dict(1)
        self._verify_result(my_purge, deleted, failed)

        # Verify message when tenant has supported resources,
        # and all are not deleteable
        deleted = self._generate_resources_dict()
        self._verify_result(my_purge, deleted, failed)