From a5e6f88e12da83d2fccec30a551763412a9c5472 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Wed, 24 May 2017 13:05:38 -0400 Subject: [PATCH] handle mixed-language repos packaged as python The horizon repo and repos for plugins all have package.json but are packaged using the python tools not npm tools. Assuming we might have similar cases for puppet modules, this patch updates both cases to ignore the other language packaging files when setup.py is present. Change-Id: I61740a01a2289fed6ad5324c53b225d27fd3d6db Signed-off-by: Doug Hellmann --- openstack_releases/npmutils.py | 2 ++ openstack_releases/puppetutils.py | 2 ++ openstack_releases/tests/test_npmutils.py | 13 +++++++++++++ openstack_releases/tests/test_puppetutils.py | 16 ++++++++++++++++ 4 files changed, 33 insertions(+) diff --git a/openstack_releases/npmutils.py b/openstack_releases/npmutils.py index 4f38426510..701345ae8e 100644 --- a/openstack_releases/npmutils.py +++ b/openstack_releases/npmutils.py @@ -18,6 +18,8 @@ import os.path def looks_like_a_module(workdir, repo): "Does the directory look like it contains an npm module?" + if os.path.exists(os.path.join(workdir, repo, 'setup.py')): + return False return os.path.exists(os.path.join(workdir, repo, 'package.json')) diff --git a/openstack_releases/puppetutils.py b/openstack_releases/puppetutils.py index a319e83bf0..f9957e7ca0 100644 --- a/openstack_releases/puppetutils.py +++ b/openstack_releases/puppetutils.py @@ -18,6 +18,8 @@ import os.path def looks_like_a_module(workdir, repo): "Does the directory look like it contains a puppet module?" + if os.path.exists(os.path.join(workdir, repo, 'setup.py')): + return False if not os.path.exists(os.path.join(workdir, repo, 'metadata.json')): return False return any([ diff --git a/openstack_releases/tests/test_npmutils.py b/openstack_releases/tests/test_npmutils.py index 07f50c4b23..1bb74c0459 100644 --- a/openstack_releases/tests/test_npmutils.py +++ b/openstack_releases/tests/test_npmutils.py @@ -48,6 +48,19 @@ class TestModuleDetection(base.BaseTestCase): '.', 'openstack/monasca-kibana-plugin') self.assertTrue(is_mod) + def test_actually_python(self): + + def exists(name): + if name.endswith('package.json'): + return True + if name.endswith('setup.py'): + return True + + with mock.patch('os.path.exists', exists): + is_mod = npmutils.looks_like_a_module( + '.', 'openstack/monasca-kibana-plugin') + self.assertFalse(is_mod) + class TestGetMetadata(base.BaseTestCase): diff --git a/openstack_releases/tests/test_puppetutils.py b/openstack_releases/tests/test_puppetutils.py index 78a9b76ced..11d58d30db 100644 --- a/openstack_releases/tests/test_puppetutils.py +++ b/openstack_releases/tests/test_puppetutils.py @@ -77,6 +77,22 @@ class TestModuleDetection(base.BaseTestCase): '.', 'openstack/puppet-watcher') self.assertTrue(is_mod) + def test_actually_python(self): + + def exists(name): + if name.endswith('setup.py'): + return True + if name.endswith('metadata.json'): + return True + if name.endswith('manifests'): + return True + return False + + with mock.patch('os.path.exists', exists): + is_mod = puppetutils.looks_like_a_module( + '.', 'openstack/puppet-watcher') + self.assertFalse(is_mod) + class TestGetMetadata(base.BaseTestCase):