Exemplo n.º 1
0
 def testReadSavePromptRecord_LastPromptTimeOnly(self):
     record = survey_check.PromptRecord()
     with record as r:
         r.last_prompt_time = self.last_prompt_time
     new_record = survey_check.PromptRecord()
     self.assertEqual(new_record.last_prompt_time, self.last_prompt_time)
     self.assertEqual(new_record.last_answer_survey_time, None)
Exemplo n.º 2
0
 def testPromptForSurvey(self):
     with survey_check.PromptRecord() as pr:
         pr.last_prompt_time = 0
     prompter = survey_check.SurveyPrompter()
     prompter.Prompt()
     self.AssertErrEquals('\n\nTo take a quick anonymous survey, run:\n'
                          '  $ gcloud survey\n\n')
     with survey_check.PromptRecord() as pr:
         self.assertEqual(pr.last_prompt_time, 1544651979)
         self.assertEqual(pr.last_answer_survey_time, None)
Exemplo n.º 3
0
 def testPromptForSurvey_NoCacheFile(self):
     prompter = survey_check.SurveyPrompter()
     prompter.Prompt()
     self.AssertErrEquals('')
     with survey_check.PromptRecord() as pr:
         self.assertEqual(pr.last_prompt_time, 1544651979)
         self.assertEqual(pr.last_answer_survey_time, None)
Exemplo n.º 4
0
    def testReadSavePromptRecord(self):
        record = survey_check.PromptRecord()
        self.assertEqual(record.last_prompt_time, None)
        self.assertEqual(record.last_answer_survey_time, None)
        self.assertFalse(record.dirty)
        with record as r:
            r.last_prompt_time = self.last_prompt_time
            r.last_answer_survey_time = self.last_answer_survey_time
            self.assertTrue(record.dirty)
        self.assertFalse(record.dirty)

        new_record = survey_check.PromptRecord()
        self.assertEqual(new_record.last_prompt_time, self.last_prompt_time)
        self.assertEqual(new_record.last_answer_survey_time,
                         self.last_answer_survey_time)
        with new_record as r:
            r.last_prompt_time = self.new_last_prompt_time
        self.assertEqual(new_record.last_prompt_time,
                         self.new_last_prompt_time)
        self.assertEqual(new_record.last_answer_survey_time,
                         self.last_answer_survey_time)
    def testLogSurveyAnswers_Success(self):
        self.mock_client.request.return_value = mock.PropertyMock(
            status_code=200)
        concord_util.LogSurveyAnswers(self.survey_instances)
        expected_headers = {'user-agent': 'cloudsdk'}
        expected_hats_response = {
            'hats_metadata': {
                'site_id': 'CloudSDK',
                'site_name': 'googlecloudsdk',
                'survey_id': 'GeneralSurvey'
            },
            'multiple_choice_response': [{
                'question_number': 0,
                'answer_text': ['Very satisfied'],
                'answer_index': [1],
                'order_index': [1],
                'order': [1, 2, 3, 4, 5]
            }],
            'open_text_response': [{
                'question_number': 2,
                'answer_text': 'Love Cloud SDK!'
            }],
            'rating_response': [{
                'question_number': 1,
                'rating': 10
            }]
        }
        expected_concord_event = {
            'event_metadata': [{
                'env': 'env'
            }],
            'console_type': 'CloudSDK',
            'event_type': 'hatsSurvey',
            'hats_response': expected_hats_response
        }
        expected_log_events = [{
            'event_time_ms':
            100,
            'source_extension_json':
            json.dumps(expected_concord_event, sort_keys=True)
        }]

        expected_body = json.dumps(
            {
                'client_info': {
                    'client_type': 'DESKTOP',
                    'desktop_client_info': {
                        'os': 'os_id'
                    }
                },
                'log_source_name': 'CONCORD',
                'zwieback_cookie': '111',
                'request_time_ms': 100,
                'log_event': expected_log_events
            },
            sort_keys=True)

        self.mock_client.request.assert_called_once_with(
            'POST',
            'https://play.googleapis.com/log',
            data=expected_body,
            headers=expected_headers)
        with survey_check.PromptRecord() as pr:
            self.assertEqual(pr.last_answer_survey_time, 200)
        self.AssertErrEquals('Your response is submitted.\n')
Exemplo n.º 6
0
def _UpdateSurveyCache():
    """Records the time user answers survey."""
    with survey_check.PromptRecord() as pr:
        pr.last_answer_survey_time = time.time()
Exemplo n.º 7
0
 def testReadPromptRecord_BadFile(self):
     with open(config.Paths().survey_prompting_cache_path, 'w') as f:
         f.write('junk data')
     record = survey_check.PromptRecord()
     self.assertEqual(record.last_prompt_time, None)
     self.assertEqual(record.last_answer_survey_time, None)
Exemplo n.º 8
0
 def testShouldPrompt_LastPromptNotExpired_AnswerExpired(self):
     with survey_check.PromptRecord() as pr:
         pr.last_prompt_time = self.last_prompt_time_unexpired
         pr.last_answer_survey_time = self.last_answer_survey_time_expired
     prompter = survey_check.SurveyPrompter()
     self.assertFalse(prompter.ShouldPrompt())
Exemplo n.º 9
0
 def testShouldPrompt_LastPromptExpired_NotAnswered(self):
     with survey_check.PromptRecord() as pr:
         pr.last_prompt_time = self.last_prompt_time_expired
     prompter = survey_check.SurveyPrompter()
     self.assertTrue(prompter.ShouldPrompt())
Exemplo n.º 10
0
 def testShouldPrompt_NotPromptedYet_AnswerExpired(self):
     with survey_check.PromptRecord() as pr:
         pr.last_answer_survey_time = self.last_answer_survey_time_expired
     prompter = survey_check.SurveyPrompter()
     self.assertTrue(prompter.ShouldPrompt())