def test_creds(self, mock_requests): """Ensure the token and secret are passed correctly.""" mock_requests.get.return_value.content = SURVEY_GIZMO_EMPTY_RESPONSE with self.settings(SURVEYGIZMO_API_TOKEN='mytoken', SURVEYGIZMO_API_TOKEN_SECRET='mysecret'): get_exit_survey_results('general', datetime(2016, 1, 1)) url = mock_requests.get.call_args[0][0] ok_('api_token=mytoken' in url) ok_('api_token_secret=mysecret' in url)
def test_early_exit(self, mock_requests): """ If there are no creds, don't hit the API and return an empty list. """ with self.settings(SURVEYGIZMO_API_TOKEN=None, SURVEYGIZMO_API_TOKEN_SECRET=None): summary = get_exit_survey_results('general', datetime(2016, 1, 1)) eq_(summary, {'yes': 0, 'no': 0, 'dont-know': 0}) ok_(not mock_requests.put.called)
def _process_exit_survey_results(): """Collect and save new exit survey results.""" # Gather and process up until yesterday's exit survey results. yes_kind, _ = MetricKind.objects.get_or_create(code=EXIT_SURVEY_YES_CODE) no_kind, _ = MetricKind.objects.get_or_create(code=EXIT_SURVEY_NO_CODE) dunno_kind, _ = MetricKind.objects.get_or_create( code=EXIT_SURVEY_DONT_KNOW_CODE) latest_metric = _get_latest_metric(EXIT_SURVEY_YES_CODE) if latest_metric is not None: latest_metric_date = latest_metric.start else: latest_metric_date = date(2013, 07, 01) day = latest_metric_date + timedelta(days=1) today = date.today() while day < today: # Get the aggregated results. results = get_exit_survey_results('general', day) # Store them. Metric.objects.create( kind=yes_kind, start=day, end=day + timedelta(days=1), value=results['yes']) Metric.objects.create( kind=no_kind, start=day, end=day + timedelta(days=1), value=results['no']) Metric.objects.create( kind=dunno_kind, start=day, end=day + timedelta(days=1), value=results['dont-know']) # Move on to next day. day += timedelta(days=1)