Ejemplo n.º 1
0
  def trigger_request(self, date, text, expected):
    """Triggers a fake HTTP request and verifies the AccountStatsDay instances.
    """
    request = MockRequestTask('update-stats', [date], date)
    out = views.task_update_stats(request)
    self.assertEqual(200, out.status_code)
    actual = list(out)
    self.assertEqual(1, len(actual))

    stats = models.AccountStatsDay.query().fetch()
    self.assertTrue(isinstance(expected, list))
    # Make a copy so |expected| is not modified.
    expected = [i.copy() for i in expected]
    for i in expected:
      i['user'] = str(i['user'].email)
      i.setdefault('issues', [4])
      i.setdefault('latencies', [-1])
      i.setdefault('lgtms', [0])
      i.setdefault('name', date)
      i.setdefault('score', models.AccountStatsBase.NULL_SCORE)
    self.assertEqual(expected, [views.stats_to_dict(s) for s in stats])
    # Check the HTTP request reply at the end, because it's more cosmetic than
    # the actual entities.
    self.assertTrue(
        re.match('^' + re.escape(date + '\n' + text) + 'In \\d+\\.\\ds\n$', actual[0]),
        actual[0])
Ejemplo n.º 2
0
  def trigger_request(self, date, text, expected):
    """Triggers a fake HTTP request and verifies the AccountStatsDay instances.
    """
    request = MockRequestTask('update-stats', [date], date)
    out = views.task_update_stats(request)
    self.assertEqual(200, out.status_code)
    actual = list(out)
    self.assertEqual(1, len(actual))

    stats = models.AccountStatsDay.query().fetch()
    self.assertTrue(isinstance(expected, list))
    # Make a copy so |expected| is not modified.
    expected = [i.copy() for i in expected]
    for i in expected:
      i['user'] = str(i['user'].email)
      i.setdefault('issues', [4])
      i.setdefault('latencies', [-1])
      i.setdefault('lgtms', [0])
      i.setdefault('name', date)
      i.setdefault('score', models.AccountStatsBase.NULL_SCORE)
    self.assertEqual(expected, [views.stats_to_dict(s) for s in stats])
    # Check the HTTP request reply at the end, because it's more cosmetic than
    # the actual entities.
    self.assertTrue(
        re.match('^' + re.escape(date + '\n' + text) + 'In \\d+\\.\\ds\n$', actual[0]),
        actual[0])
Ejemplo n.º 3
0
  def trigger_request(self, date, item, text, expected):
    """Triggers a fake HTTP request and verifies the AccountStatsMulti
    instances.
    """
    request = MockRequestTask('update-stats', [item], str(self.today.date()))
    out = views.task_update_stats(request)
    actual = list(out)
    self.assertEqual(1, len(actual))
    self.assertEqual(200, out.status_code, actual[0])

    stats = models.AccountStatsMulti.query().fetch()
    self.assertTrue(isinstance(expected, list))
    # Make a copy so |expected| is not modified.
    expected = [i.copy() for i in expected]
    for i in expected:
      i['user'] = str(i['user'].email)
    self.assertEqual(expected, [views.stats_to_dict(s) for s in stats])
    # Check the HTTP request reply at the end, because it's more cosmetic than
    # the actual entities.
    text = str(date.date()) + '\n' + text
    regexp = '^' + re.escape(text) + 'In \\d+\\.\\ds\n$'
    self.assertTrue(re.match(regexp, actual[0]), (text, actual[0]))
Ejemplo n.º 4
0
  def trigger_request(self, date, item, text, expected):
    """Triggers a fake HTTP request and verifies the AccountStatsMulti
    instances.
    """
    request = MockRequestTask('update-stats', [item], str(self.today.date()))
    out = views.task_update_stats(request)
    actual = list(out)
    self.assertEqual(1, len(actual))
    self.assertEqual(200, out.status_code, actual[0])

    stats = models.AccountStatsMulti.query().fetch()
    self.assertTrue(isinstance(expected, list))
    # Make a copy so |expected| is not modified.
    expected = [i.copy() for i in expected]
    for i in expected:
      i['user'] = str(i['user'].email)
    self.assertEqual(expected, [views.stats_to_dict(s) for s in stats])
    # Check the HTTP request reply at the end, because it's more cosmetic than
    # the actual entities.
    text = str(date.date()) + '\n' + text
    regexp = '^' + re.escape(text) + 'In \\d+\\.\\ds\n$'
    self.assertTrue(re.match(regexp, actual[0]), (text, actual[0]))