Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
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)
Esempio n. 6
0
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)