From ec6004149d14279e0064ba25b861171c607d43e2 Mon Sep 17 00:00:00 2001 From: Ilya Shakhat Date: Mon, 6 Apr 2015 16:15:19 +0300 Subject: [PATCH] Correct page title for complementary projects Change-Id: I38020bac15a30ebcf817617dd82cdbff089d3494 --- stackalytics/dashboard/decorators.py | 2 ++ stackalytics/dashboard/helpers.py | 20 +++++++++++++++----- tests/unit/test_web_utils.py | 23 ++++++++++++++++++----- 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/stackalytics/dashboard/decorators.py b/stackalytics/dashboard/decorators.py index 237807ee3..6d589d269 100644 --- a/stackalytics/dashboard/decorators.py +++ b/stackalytics/dashboard/decorators.py @@ -414,6 +414,7 @@ def templated(template=None, return_code=200): project_type = parameters.get_single_parameter( kwargs, 'project_type', use_default=True) ctx['project_type'] = project_type + ctx['project_type_inst'] = vault.get_project_type(project_type) ctx['release'] = parameters.get_single_parameter( kwargs, 'release', use_default=True) @@ -436,6 +437,7 @@ def templated(template=None, return_code=200): ctx['user_id']) ctx['page_title'] = helpers.make_page_title( + ctx['project_type_inst'], ctx.get('release'), ctx.get('module_inst'), ctx.get('company_original'), ctx.get('user_inst')) diff --git a/stackalytics/dashboard/helpers.py b/stackalytics/dashboard/helpers.py index 5d3e43f3a..14731872c 100644 --- a/stackalytics/dashboard/helpers.py +++ b/stackalytics/dashboard/helpers.py @@ -274,7 +274,10 @@ def make_commit_message(record): return s -def make_page_title(release, module_inst, company, user_inst): +def make_page_title(project_type_inst, release, module_inst, company, + user_inst): + is_openstack = (project_type_inst['id'] in + ['openstack', 'stackforge', 'all', 'integrated', 'other']) if company or user_inst: if user_inst: s = user_inst['user_name'] @@ -283,12 +286,19 @@ def make_page_title(release, module_inst, company, user_inst): else: s = company else: - s = 'OpenStack community' + if is_openstack: + s = 'OpenStack community' + else: + s = project_type_inst['title'] + ' community' s += ' contribution' if module_inst: s += ' to %s' % module_inst['module_group_name'] - if release != 'all': - s += ' in %s release' % release.capitalize() + if is_openstack: + if release != 'all': + s += ' in %s release' % release.capitalize() + else: + s += ' in all releases' else: - s += ' in all releases' + if release != 'all': + s += ' during OpenStack %s release' % release.capitalize() return s diff --git a/tests/unit/test_web_utils.py b/tests/unit/test_web_utils.py index 0eeadb4eb..5f4e96c8d 100644 --- a/tests/unit/test_web_utils.py +++ b/tests/unit/test_web_utils.py @@ -87,23 +87,36 @@ Implements Blueprint ''' + ( @mock.patch('stackalytics.dashboard.vault.get_vault') @mock.patch('stackalytics.dashboard.vault.get_user_from_runtime_storage') def test_make_page_title(self, user_patch, vault_patch): + def _pt(id, title=None): + return dict(id=id.lower(), title=title or id) + user_inst = {'user_name': 'John Doe'} module_inst = {'module_group_name': 'neutron'} self.assertEqual('OpenStack community contribution in all releases', - helpers.make_page_title('all', None, None, None)) + helpers.make_page_title( + _pt('OpenStack'), 'all', None, None, None)) self.assertEqual('OpenStack community contribution in Havana release', - helpers.make_page_title('Havana', None, None, None)) + helpers.make_page_title( + _pt('OpenStack'), 'Havana', None, None, None)) self.assertEqual('Mirantis contribution in Havana release', helpers.make_page_title( - 'Havana', None, 'Mirantis', None)) + _pt('Stackforge'), 'Havana', None, 'Mirantis', + None)) self.assertEqual('John Doe contribution in Havana release', helpers.make_page_title( - 'Havana', None, None, user_inst)) + _pt('all'), 'Havana', None, None, user_inst)) self.assertEqual( 'John Doe (Mirantis) contribution to neutron in Havana release', helpers.make_page_title( - 'Havana', module_inst, 'Mirantis', user_inst)) + _pt('all'), 'Havana', module_inst, 'Mirantis', user_inst)) + self.assertEqual('Ansible community contribution during OpenStack ' + 'Havana release', + helpers.make_page_title( + _pt('Ansible'), 'Havana', None, None, None)) + self.assertEqual('Docker community contribution', + helpers.make_page_title( + _pt('Docker'), 'all', None, None, None)) @mock.patch('flask.request') @mock.patch('stackalytics.dashboard.parameters.get_default')