コード例 #1
0
 def apply_user_corrections(self, user_corrections_iterator):
     for user_correction in user_corrections_iterator:
         stored_user = user_processor.load_user(
             self, user_id=user_correction['user_id'])
         updated_user = user_processor.update_user_profile(
             stored_user, user_correction, is_correction=True)
         user_processor.store_user(self, updated_user)
コード例 #2
0
    def test_update_user(self):
        user = {
            "launchpad_id": "user",
            "companies": [
                {
                    "company_name": "Rackspace",
                    "end_date": "2011-Nov-20"
                },
                {
                    "company_name": "IBM",
                    "end_date": None
                }
            ],
            "user_name": "John Smith",
            "emails": ["*****@*****.**"]
        }

        stored_user = {
            "launchpad_id": "user",
            "companies": [
                {
                    "company_name": "Rackspace",
                    "end_date": "2011-Nov-20"
                },
                {
                    "company_name": "IBM",
                    "end_date": None
                }
            ],
            "user_name": "Johnny",
            "emails": ["*****@*****.**", "*****@*****.**"],
            "static": True
        }

        updated_user = user_processor.update_user_profile(stored_user, user)

        # merge emails from profile with those discovered by Stackalytics
        self.assertEqual(set(stored_user['emails']),
                         set(updated_user['emails']))
        # name from the profile has higher priority over mined
        self.assertEqual(user['user_name'], updated_user['user_name'])
        # static flag must present
        self.assertTrue(updated_user.get('static'))
コード例 #3
0
    def test_update_user(self):
        user = {
            "launchpad_id":
            "user",
            "companies": [{
                "company_name": "Rackspace",
                "end_date": "2011-Nov-20"
            }, {
                "company_name": "IBM",
                "end_date": None
            }],
            "user_name":
            "John Smith",
            "emails": ["*****@*****.**"]
        }

        stored_user = {
            "launchpad_id":
            "user",
            "companies": [{
                "company_name": "Rackspace",
                "end_date": "2011-Nov-20"
            }, {
                "company_name": "IBM",
                "end_date": None
            }],
            "user_name":
            "Johnny",
            "emails": ["*****@*****.**", "*****@*****.**"],
            "static":
            True
        }

        updated_user = user_processor.update_user_profile(stored_user, user)

        # merge emails from profile with those discovered by Stackalytics
        self.assertEqual(set(stored_user['emails']),
                         set(updated_user['emails']))
        # name from the profile has higher priority over mined
        self.assertEqual(user['user_name'], updated_user['user_name'])
        # static flag must present
        self.assertTrue(updated_user.get('static'))
コード例 #4
0
    def test_update_user_unknown_user(self):
        user = {
            "launchpad_id":
            "user",
            "companies": [{
                "company_name": "Rackspace",
                "end_date": "2011-Nov-20"
            }, {
                "company_name": "IBM",
                "end_date": None
            }],
            "user_name":
            "John Smith",
            "emails": ["*****@*****.**"]
        }

        stored_user = None

        updated_user = user_processor.update_user_profile(stored_user, user)
        self.assertTrue(updated_user.get('static'))
コード例 #5
0
    def test_update_user_unknown_user(self):
        user = {
            "launchpad_id": "user",
            "companies": [
                {
                    "company_name": "Rackspace",
                    "end_date": "2011-Nov-20"
                },
                {
                    "company_name": "IBM",
                    "end_date": None
                }
            ],
            "user_name": "John Smith",
            "emails": ["*****@*****.**"]
        }

        stored_user = None

        updated_user = user_processor.update_user_profile(stored_user, user)
        self.assertTrue(updated_user.get('static'))
コード例 #6
0
    def test_update_user_with_correction(self):
        user_correction = {
            "user_id": "user",
            "correction_comment": "Reset emails",
            "emails": ["*****@*****.**"]
        }

        stored_user = {
            "launchpad_id":
            "user",
            "companies": [{
                "company_name": "Rackspace",
                "end_date": "2011-Nov-20"
            }, {
                "company_name": "IBM",
                "end_date": None
            }],
            "user_name":
            "Johnny",
            "emails": ["*****@*****.**"],
            "corrections": ["Old correction"],
            "static":
            True
        }

        updated_user = user_processor.update_user_profile(stored_user,
                                                          user_correction,
                                                          is_correction=True)

        # reset emails from correction
        self.assertEqual(set(user_correction['emails']),
                         set(updated_user['emails']))
        # save correction history
        self.assertEqual(updated_user['corrections'],
                         ["Old correction", "Reset emails"])
        # static flag must present
        self.assertTrue(updated_user.get('static'))
コード例 #7
0
def _store_users(runtime_storage_inst, users):
    for user in users:
        stored_user = user_processor.load_user(runtime_storage_inst,
                                               user_id=user['user_id'])
        updated_user = user_processor.update_user_profile(stored_user, user)
        user_processor.store_user(runtime_storage_inst, updated_user)