From cab0259932adac769eb802ca2a65b5898662ebba Mon Sep 17 00:00:00 2001 From: Andrew Saba Date: Sat, 10 Feb 2018 21:16:15 +0100 Subject: [PATCH 1/4] fixed type issue with versions, if the version id is an integer --- src/wstool/config_yaml.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wstool/config_yaml.py b/src/wstool/config_yaml.py index 19f82e5..c536a4e 100644 --- a/src/wstool/config_yaml.py +++ b/src/wstool/config_yaml.py @@ -378,7 +378,7 @@ def get_path_spec_from_yaml(yaml_dict): elif key == "uri": uri = value elif key == "version": - version = value + version = str(value) else: raise MultiProjectException( "Unknown key %s in %s" % (key, yaml_dict)) From 0c2bd9cf454e39ebd25e337e3a50c3ecccbe6978 Mon Sep 17 00:00:00 2001 From: Andrew Saba Date: Sat, 10 Feb 2018 21:53:28 +0100 Subject: [PATCH 2/4] fixed issue with None version --- src/wstool/config_yaml.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/wstool/config_yaml.py b/src/wstool/config_yaml.py index c536a4e..cd9a8ee 100644 --- a/src/wstool/config_yaml.py +++ b/src/wstool/config_yaml.py @@ -378,7 +378,10 @@ def get_path_spec_from_yaml(yaml_dict): elif key == "uri": uri = value elif key == "version": - version = str(value) + if value is not None: + version = str(value) + else: + version = value else: raise MultiProjectException( "Unknown key %s in %s" % (key, yaml_dict)) From b12689db25241e3268956676c5f81c2b9b813bdc Mon Sep 17 00:00:00 2001 From: Andrew Saba Date: Sat, 10 Feb 2018 22:44:45 +0100 Subject: [PATCH 3/4] Added test for checking version is a str --- test/local/test_config_yaml.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/local/test_config_yaml.py b/test/local/test_config_yaml.py index 305cab2..79c55f9 100644 --- a/test/local/test_config_yaml.py +++ b/test/local/test_config_yaml.py @@ -326,6 +326,20 @@ def test_original_syntax_scm(self): self.assertEqual(uri, wrap.get_uri()) self.assertEqual({scmtype: {'local-name': local_name, 'uri': uri}}, wrap.get_legacy_yaml()) + # version is a number + local_name = 'common_rosdeps' + version = 1234 + uri = 'https://kforge.ros.org/common/rosdepcore' + scmtype = 'hg' + struct = {scmtype: {'local-name': local_name, 'version': version, 'uri': uri}} + expected_struct = {scmtype: {'local-name': local_name, 'version': str(version), 'uri': uri}} + wrap = get_path_spec_from_yaml(struct) + self.assertEqual(scmtype, wrap.get_scmtype()) + self.assertEqual(scmtype, wrap.get_legacy_type()) + self.assertTrue(isinstance(wrap.get_version(), str)) + self.assertEqual(uri, wrap.get_uri()) + self.assertEqual(expected_struct, wrap.get_legacy_yaml()) + # no version local_name = 'common_rosdeps' version = None From 9c44843e3fc1904ef1af94fde0fe519dc410abc8 Mon Sep 17 00:00:00 2001 From: Andrew Saba Date: Mon, 8 Oct 2018 17:59:57 -0400 Subject: [PATCH 4/4] style fixes and comments --- src/wstool/config_yaml.py | 5 +++-- test/local/test_config_yaml.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/wstool/config_yaml.py b/src/wstool/config_yaml.py index cd9a8ee..1f1935a 100644 --- a/src/wstool/config_yaml.py +++ b/src/wstool/config_yaml.py @@ -378,10 +378,11 @@ def get_path_spec_from_yaml(yaml_dict): elif key == "uri": uri = value elif key == "version": + # VCs tools expects version to be + # string; otherwise, all integer + # versions will break application if value is not None: version = str(value) - else: - version = value else: raise MultiProjectException( "Unknown key %s in %s" % (key, yaml_dict)) diff --git a/test/local/test_config_yaml.py b/test/local/test_config_yaml.py index 79c55f9..5a210d1 100644 --- a/test/local/test_config_yaml.py +++ b/test/local/test_config_yaml.py @@ -336,7 +336,7 @@ def test_original_syntax_scm(self): wrap = get_path_spec_from_yaml(struct) self.assertEqual(scmtype, wrap.get_scmtype()) self.assertEqual(scmtype, wrap.get_legacy_type()) - self.assertTrue(isinstance(wrap.get_version(), str)) + self.assertIsInstance(wrap.get_version(), str) self.assertEqual(uri, wrap.get_uri()) self.assertEqual(expected_struct, wrap.get_legacy_yaml())