From 8edbedeb4ec56793a73dc88755a80fec5528e8a0 Mon Sep 17 00:00:00 2001 From: Pavel Kholkin Date: Wed, 30 Sep 2015 19:37:35 +0300 Subject: [PATCH] Validate company name in user profiles Change-Id: Id7c74e510d996905beeae40d90fd3e2f74b81628 --- etc/default_data.json | 4 ++ etc/test_default_data.json | 5 +++ stackalytics/tests/unit/test_config_files.py | 39 ++++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/etc/default_data.json b/etc/default_data.json index 578567576..165bdda68 100644 --- a/etc/default_data.json +++ b/etc/default_data.json @@ -14069,6 +14069,10 @@ "domains": ["rightscale.com"], "company_name": "Rightscale" }, + { + "domains": ["ril.com"], + "company_name": "Reliance" + }, { "domains": ["rizu.mu"], "company_name": "Rizumu" diff --git a/etc/test_default_data.json b/etc/test_default_data.json index 7ebf5977b..44662eae4 100644 --- a/etc/test_default_data.json +++ b/etc/test_default_data.json @@ -35,6 +35,11 @@ "company_name": "*independent", "domains": [""] }, + { + "company_name": "Some Test Company", + "domains": [""], + "aliases": ["Duo", "Uno"] + }, { "company_name": "Hewlett-Packard", "domains": ["hp.com"] diff --git a/stackalytics/tests/unit/test_config_files.py b/stackalytics/tests/unit/test_config_files.py index 19d3c6456..3e56a3887 100644 --- a/stackalytics/tests/unit/test_config_files.py +++ b/stackalytics/tests/unit/test_config_files.py @@ -23,6 +23,20 @@ import testtools from stackalytics.processor import normalizer +IGNORED_COMPANIES = ['*robots', 'April', 'Chelsio Communications', + 'CloudRunner.io', 'Datera', 'Facebook', + 'Fermi National Accelerator Laboratory', 'Github', + 'H3C', + 'Huaxin Hospital, First Hospital of Tsinghua University', + 'InfluxDB', 'Kickstarter', 'National Security Agency', + 'OpenStack Foundation', 'OpenStack Korea User Group', + 'ProphetStor', 'SVA System Vertrieb Alexander GmbH', + 'Sencha', 'Stark & Wayne LLC', 'Styra', + 'Suranee University of Technology', + 'The Linux Foundation', 'UTi Worldwide', 'Undead Labs', + 'Violin Memory', 'docCloud', 'npm'] + + def dict_raise_on_duplicates(ordered_pairs): """Reject duplicate keys.""" d = {} @@ -188,3 +202,28 @@ class TestConfigFiles(testtools.TestCase): def test_test_default_data_user_profiles_correctness(self): self._validate_default_data_correctness('etc/test_default_data.json') + + def _validate_user_companies(self, file_name): + data = self._read_file(file_name) + users = data['users'] + companies = data['companies'] + company_names = [] + for company in companies: + company_names.append(company['company_name']) + for alias in company.get('aliases', []): + company_names.append(alias) + + for user in users: + for company in user['companies']: + if not company['company_name'] in IGNORED_COMPANIES: + error_msg = ('Company "%s" is unknown. Please add it into' + ' the list of companies in default_data.json ' + 'file' % company['company_name']) + self.assertTrue(company['company_name'] in company_names, + error_msg) + + def test_default_data_user_companies(self): + self._validate_user_companies('etc/default_data.json') + + def test_test_default_data_user_companies(self): + self._validate_user_companies('etc/test_default_data.json')