예제 #1
0
    def _create_people_cache_import(self):
        """Create cache of people used in this block for import."""
        people_emails = set()

        columns_with_people = self._gather_columns_with_people()
        for row_idx, row in enumerate(self.rows):
            for (column_idx,
                 attr_name), header in columns_with_people.iteritems():
                handler = header["handler"]
                emails = handler.get_people_emails_from_value(row[column_idx])
                valid_emails = set()
                for email in emails:
                    try:
                        handler.validate_email(email)
                    except ValueError as err:
                        self._cache_error(
                            errors.VALIDATION_ERROR,
                            key=(row_idx, attr_name),
                            column_name=header["display_name"],
                            message=err.message,
                        )
                        continue

                    valid_emails.add(email)

                people_emails |= set(valid_emails)

        people = []
        if people_emails:
            people = user_generator.find_users(people_emails)
        self._people_cache = structures.CaseInsensitiveDict(
            {person.email: person
             for person in people})
예제 #2
0
    def setUp(self):
        """Set up request mock and mock dependencies."""
        self.request = mock.MagicMock()
        self.request.headers = structures.CaseInsensitiveDict()

        self.settings_patcher = mock.patch("ggrc.login.appengine.settings")
        self.settings_mock = self.settings_patcher.start()
        self.settings_mock.ALLOWED_QUERYAPI_APP_IDS = [self.ALLOWED_APPID]

        self.person_patcher = mock.patch(
            "ggrc.login.appengine.all_models.Person")
        self.person_mock = self.person_patcher.start()

        self.is_ext_user_email_patcher = mock.patch(
            "ggrc.login.appengine.is_external_app_user_email")
        self.is_ext_user_email_mock = self.is_ext_user_email_patcher.start()

        self.find_or_create_ext_app_user_patcher = mock.patch(
            "ggrc.login.appengine.find_or_create_ext_app_user")
        self.find_or_create_ext_app_user_mock = (
            self.find_or_create_ext_app_user_patcher.start())

        # valid headers by default
        self.request.headers["X-appengine-inbound-appid"] = self.ALLOWED_APPID
        self.request.headers["X-ggrc-user"] = json.dumps({"email": self.EMAIL})
예제 #3
0
 def setUp(self):
     self.ci_dict = structures.CaseInsensitiveDict()