def SetUp(self):
        # prepare test survey
        self.survey_instances = survey.GeneralSurvey()
        for survey_question in self.survey_instances:
            if isinstance(survey_question, question.SatisfactionQuestion):
                survey_question.AnswerQuestion('5')
            elif isinstance(survey_question, question.NPSQuestion):
                survey_question.AnswerQuestion('10')
            elif isinstance(survey_question, question.FreeTextQuestion):
                survey_question.AnswerQuestion('Love Cloud SDK!')

        self.mock_client = mock.create_autospec(requests.Session)
        self.StartPatch('googlecloudsdk.core.requests.GetSession',
                        return_value=self.mock_client)

        self.StartObjectPatch(metrics,
                              'GetTimeMillis',
                              autospec=True,
                              return_value=100)
        self.StartObjectPatch(metrics,
                              'GetUserAgent',
                              autospec=True,
                              return_value='cloudsdk')
        self.StartObjectPatch(metrics,
                              'GetCID',
                              autospec=True,
                              return_value='111')

        os_attrs = {'id': 'os_id'}
        self.mock_os = mock.create_autospec(platforms.OperatingSystem,
                                            **os_attrs)
        platform_attrs = {'operating_system': self.mock_os}
        self.mock_platform = mock.create_autospec(platforms.Platform,
                                                  **platform_attrs)
        self.StartObjectPatch(platforms.Platform,
                              'Current',
                              return_value=self.mock_platform)

        self.StartPatch(
            'googlecloudsdk.api_lib.survey.concord_util._SurveyEnvironment',
            return_value=[{
                'env': 'env'
            }])

        self.tempdir = self.CreateTempDir()
        self.StartPatch(
            'googlecloudsdk.core.config.Paths.survey_prompting_cache_path',
            new=os.path.join(self.tempdir, 'survey_prompt_file'))
        self.StartPatch('time.time', return_value=200)
Example #2
0
 def Run(self, args):
   survey_instance = survey.GeneralSurvey()
   survey_instance.PrintWelcomeMsg()
   num_of_questions = len(list(survey_instance))
   # Index questions from 1 instead of 0 (default) to be user-friendly.
   for index, question in enumerate(survey_instance, 1):
     progress_msg = '\nQuestion {} of {}:\n'.format(index, num_of_questions)
     log.err.Print(progress_msg)
     question.PrintQuestion()
     log.err.write('\n')
     survey_instance.PrintInstruction()
     answer = _GetAnswerToQuestion(question)
     if answer == survey.Survey.ControlOperation.EXIT_SURVEY:
       log.err.Print('Exited the survey')
       return
     elif answer == survey.Survey.ControlOperation.SKIP_QUESTION:
       log.err.Print('Skipped question {}'.format(index))
       continue
     question.AnswerQuestion(answer)
   LogResponse(survey_instance)
Example #3
0
 def SetUp(self):
     super(GeneralSurveyTest, self).SetUp()
     self.survey = survey.GeneralSurvey()