diff --git a/azure-devops/azext_devops/dev/team/invoke.py b/azure-devops/azext_devops/dev/team/invoke.py index 9b4cad38..7f095bdb 100644 --- a/azure-devops/azext_devops/dev/team/invoke.py +++ b/azure-devops/azext_devops/dev/team/invoke.py @@ -135,7 +135,7 @@ def invoke(area=None, resource=None, def apiVersionToFloat(apiVersion): - apiVersion = apiVersion.replace('-preview', '') + apiVersion = apiVersion.split('-preview')[0] return float(apiVersion) diff --git a/azure-devops/azext_devops/tests/latest/team/test_invoke.py b/azure-devops/azext_devops/tests/latest/team/test_invoke.py new file mode 100644 index 00000000..ae059da4 --- /dev/null +++ b/azure-devops/azext_devops/tests/latest/team/test_invoke.py @@ -0,0 +1,24 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import unittest + +from azext_devops.dev.team.invoke import apiVersionToFloat + + +class TestApiVersionToFloat(unittest.TestCase): + + def test_plain_version(self): + self.assertEqual(apiVersionToFloat('7.1'), 7.1) + + def test_preview_version_without_subversion(self): + self.assertEqual(apiVersionToFloat('7.1-preview'), 7.1) + + def test_preview_version_with_subversion(self): + # e.g. "7.1-preview.1" - the sub-version suffix used to break float() conversion + self.assertEqual(apiVersionToFloat('7.1-preview.1'), 7.1) + + def test_preview_version_with_multi_digit_subversion(self): + self.assertEqual(apiVersionToFloat('5.0-preview.10'), 5.0)