diff options
author | Zuul <zuul@review.opendev.org> | 2020-03-23 21:41:45 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-03-23 21:41:45 +0000 |
commit | 9e8960bad044d62f0d255018c501b6b637c4b3c1 (patch) | |
tree | 61d4e194a86855e48f135f3189c4926979ce2c77 | |
parent | 6d89d78daa5862337dcf0633a3c0a93bb2826c2e (diff) | |
parent | 27da238da2f9a8b35082d06624313a844cb6cc6f (diff) | |
download | python-openstackclient-9e8960bad044d62f0d255018c501b6b637c4b3c1.tar.gz |
Merge "Fix network segment range "_get_ranges" function"
-rw-r--r-- | openstackclient/network/v2/network_segment_range.py | 3 | ||||
-rw-r--r-- | openstackclient/tests/unit/network/v2/test_network_segment_range.py | 14 |
2 files changed, 15 insertions, 2 deletions
diff --git a/openstackclient/network/v2/network_segment_range.py b/openstackclient/network/v2/network_segment_range.py index 2cdae642..b38c72c2 100644 --- a/openstackclient/network/v2/network_segment_range.py +++ b/openstackclient/network/v2/network_segment_range.py @@ -23,7 +23,6 @@ from osc_lib.cli import format_columns from osc_lib.command import command from osc_lib import exceptions from osc_lib import utils -import six from openstackclient.i18n import _ from openstackclient.identity import common as identity_common @@ -42,7 +41,7 @@ def _get_columns(item): def _get_ranges(item): - item = [int(i) if isinstance(i, six.string_types) else i for i in item] + item = sorted([int(i) for i in item]) for a, b in itertools.groupby(enumerate(item), lambda xy: xy[1] - xy[0]): b = list(b) yield "%s-%s" % (b[0][1], b[-1][1]) if b[0][1] != b[-1][1] else \ diff --git a/openstackclient/tests/unit/network/v2/test_network_segment_range.py b/openstackclient/tests/unit/network/v2/test_network_segment_range.py index 89a0c223..b60f1710 100644 --- a/openstackclient/tests/unit/network/v2/test_network_segment_range.py +++ b/openstackclient/tests/unit/network/v2/test_network_segment_range.py @@ -24,6 +24,20 @@ from openstackclient.tests.unit.network.v2 import fakes as network_fakes from openstackclient.tests.unit import utils as tests_utils +class TestAuxiliaryFunctions(tests_utils.TestCase): + + def test__get_ranges(self): + input_reference = [ + ([1, 2, 3, 4, 5, 6, 7], ['1-7']), + ([1, 2, 5, 4, 3, 6, 7], ['1-7']), + ([1, 2, 4, 3, 7, 6], ['1-4', '6-7']), + ([1, 2, 4, 3, '13', 12, '7', '6'], ['1-4', '6-7', '12-13']) + ] + for input, reference in input_reference: + self.assertEqual(reference, + list(network_segment_range._get_ranges(input))) + + class TestNetworkSegmentRange(network_fakes.TestNetworkV2): def setUp(self): |