def test_ensure_user_info(self):
        """Test creation logic for the a models.UserInfo data model."""
        user_1 = FakeUser("*****@*****.**")
        user_2 = FakeUser("*****@*****.**")

        user_info_1 = models.UserInfo()
        user_info_1.email = user_1.email()
        user_info_1.safe_email = util.get_safe_email(user_1)
        user_info_1.is_reviewer = True
        user_info_1.put()

        ret_info_1 = account_facade.ensure_user_info(user_1)
        ret_info_2 = account_facade.ensure_user_info(user_2)

        self.assertEqual(ret_info_1.email, user_1.email())
        self.assertTrue(ret_info_1.is_reviewer)
        self.assertEqual(ret_info_2.email, user_2.email())
        self.assertFalse(ret_info_2.is_reviewer)
    def get(self):
        """
        GET request handler that ensures a user has a models.UserInfo record.

        GET request handler that checks that a user has a models.UserInfo
        record, creating it if it does not already exit. All users are then
        redirected to the page specified by util.get_user_home.
        """
        cur_user = users.get_current_user()
        target_email = cur_user.email()

        if not util.check_email(target_email):
            account_facade.set_flash_message(
                target_email,
                constants.FLASH_MSG_TYPE_ERR,
                constants.FLASH_MSG_INVALID_EMAIL
            )
            self.redirect(constants.HOME_URL)
        else:
            account_facade.ensure_user_info(cur_user)
            self.redirect(util.get_user_home(cur_user))