From ecaabf2146be8d82673a8bea7ac4bc8ff1c9dd46 Mon Sep 17 00:00:00 2001 From: Matt Riedemann Date: Thu, 10 Mar 2016 15:05:30 -0500 Subject: [PATCH] Support passing just a single project name This allows you to pass just the project name, like 'nova', to the --project option so you don't have to actually know the underlying file structure. Change-Id: I9f0f7f54ff5f5c1d99f391fc0706c00ccbe8886f --- reviewstats/tests/test_projectinfo.py | 8 ++++++++ reviewstats/utils.py | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/reviewstats/tests/test_projectinfo.py b/reviewstats/tests/test_projectinfo.py index c08475d..6bc59a8 100644 --- a/reviewstats/tests/test_projectinfo.py +++ b/reviewstats/tests/test_projectinfo.py @@ -18,3 +18,11 @@ class TestProjectInfo(base.TestCase): def test_project_definitions_load(self): utils.get_projects_info('', True) + + def test_get_projects_info_single_name(self): + projects = utils.get_projects_info('nova') + self.assertEqual(1, len(projects)) + + def test_get_projects_info_single_name_projects_prefixed(self): + projects = utils.get_projects_info('projects/stable.json') + self.assertEqual(1, len(projects)) diff --git a/reviewstats/utils.py b/reviewstats/utils.py index e1e3b47..54502af 100644 --- a/reviewstats/utils.py +++ b/reviewstats/utils.py @@ -31,7 +31,8 @@ import paramiko LOG = logging.getLogger(__name__) -def get_projects_info(project=None, all_projects=False, base_dir='./projects'): +def get_projects_info(project=None, all_projects=False, + base_dir='./projects/'): """Return the list of project dict objects. :param project: pathname of the JSON project info file. @@ -57,6 +58,12 @@ def get_projects_info(project=None, all_projects=False, base_dir='./projects'): if all_projects: files = glob.glob('%s/*.json' % base_dir) else: + # handle just passing the project name + if not os.path.isfile(project): + if not project.startswith(base_dir): + project = base_dir + project + if not project.endswith('.json'): + project = project + '.json' files = [project] projects = []