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)
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)
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)
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')
def _UpdateSurveyCache(): """Records the time user answers survey.""" with survey_check.PromptRecord() as pr: pr.last_answer_survey_time = time.time()
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)
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())
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())
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())