def _store_companies(runtime_storage_inst, companies): domains_index = {} for company in companies: for domain in company['domains']: domains_index[domain] = company['company_name'] if 'aliases' in company: for alias in company['aliases']: normalized_alias = utils.normalize_company_name(alias) domains_index[normalized_alias] = company['company_name'] normalized_company_name = utils.normalize_company_name( company['company_name']) domains_index[normalized_company_name] = company['company_name'] runtime_storage_inst.set_by_key('companies', domains_index)
def _process_member(self, record): user_id = "member:" + record['member_id'] record['primary_key'] = user_id record['date'] = utils.member_date_to_timestamp(record['date_joined']) record['author_name'] = record['member_name'] record['country'] = record.get("country") record['email'] = record.get("email") record['module'] = 'unknown' company_draft = record['company_draft'] company_name = self.domains_index.get(utils.normalize_company_name( company_draft)) or company_draft # author_email is a key to create new user record['author_email'] = record["email"] or user_id record['company_name'] = company_name # _update_record_and_user function will create new user if needed self._update_record_and_user(record) record['company_name'] = company_name user = utils.load_user(self.runtime_storage_inst, record['user_id'] or user_id) user['user_name'] = record['author_name'] user['companies'] = [{ 'company_name': company_name, 'end_date': 0, }] user['company_name'] = company_name utils.store_user(self.runtime_storage_inst, user) record['company_name'] = company_name yield record
def _get_changed_member_records(runtime_storage_inst, record_processor_inst): for record in runtime_storage_inst.get_all_records(): if record['record_type'] == 'member' and 'company_name' in record: company_draft = record['company_draft'] company_name = record_processor_inst.domains_index.get( utils.normalize_company_name(company_draft)) or company_draft if company_name != record['company_name']: record['company_name'] = company_name yield record
def test_normalize_company_name(self): company_names = ['EMC Corporation', 'Abc, corp..', 'Mirantis IT.', 'Red Hat, Inc.', 'abc s.r.o. ABC', '2s.r.o. co', 'AL.P.B L.P. s.r.o. s.r.o. C ltd.'] correct_normalized_company_names = ['emc', 'abc', 'mirantis', 'redhat', 'abcabc', '2sro', 'alpbc'] normalized_company_names = [utils.normalize_company_name(name) for name in company_names] self.assertEqual(normalized_company_names, correct_normalized_company_names)
def test_normalize_company_name(self): company_names = [ 'EMC Corporation', 'Abc, corp..', 'Mirantis IT.', 'Red Hat, Inc.', 'abc s.r.o. ABC', '2s.r.o. co', 'AL.P.B L.P. s.r.o. s.r.o. C ltd.' ] correct_normalized_company_names = [ 'emc', 'abc', 'mirantis', 'redhat', 'abcabc', '2sro', 'alpbc' ] normalized_company_names = [ utils.normalize_company_name(name) for name in company_names ] self.assertEqual(normalized_company_names, correct_normalized_company_names)