예제 #1
0
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 _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)
예제 #3
0
    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
예제 #4
0
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 _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
예제 #6
0
    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)
예제 #7
0
    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)