Ejemplo n.º 1
0
    def testPost_MigratesStoppageAlerts(self):
        testing_common.AddTests(['Master'], ['b'], {'suite': {'foo': {}}})
        test_path = 'Master/b/suite/foo'
        test_key = utils.TestKey(test_path)
        test_container_key = utils.GetTestContainerKey(test_key)
        row_key = graph_data.Row(id=100, parent=test_container_key,
                                 value=5).put()
        stoppage_alert.CreateStoppageAlert(test_key.get(), row_key.get()).put()
        self.assertIsNotNone(
            stoppage_alert.GetStoppageAlert('Master/b/suite/foo', 100))
        self.assertIsNone(
            stoppage_alert.GetStoppageAlert('Master/b/suite/bar', 100))

        self.testapp.post(
            '/migrate_test_names', {
                'old_pattern': 'Master/b/suite/foo',
                'new_pattern': 'Master/b/suite/bar',
            })
        self.ExecuteTaskQueueTasks('/migrate_test_names',
                                   migrate_test_names._TASK_QUEUE_NAME)

        self.assertIsNotNone(
            stoppage_alert.GetStoppageAlert('Master/b/suite/bar', 100))
        self.assertIsNone(
            stoppage_alert.GetStoppageAlert('Master/b/suite/foo', 100))
Ejemplo n.º 2
0
def _CreateStoppageAlerts(test, last_row):
    """Yields put operations for any StoppageAlert that may be created.

  A stoppage alert is an alert created to warn people that data has not
  been received for a particular test for some length of time. An alert
  will only be created if the stoppage_alert_delay property of the sheriff
  is non-zero -- the value of this property is the number of days that should
  pass before an alert is created.

  Args:
    test: A Test entity.
    last_row: The Row entity that was last added.

  Yields:
    Either one op.db.Put, or nothing.
  """
    if not test.sheriff:
        return
    sheriff_entity = test.sheriff.get()
    warn_sheriff_delay_days = sheriff_entity.stoppage_alert_delay
    if warn_sheriff_delay_days < 0:
        return

    now = datetime.datetime.now()
    warn_sheriff_delta = datetime.timedelta(days=warn_sheriff_delay_days)
    earliest_warn_time = now - warn_sheriff_delta
    if last_row.timestamp < earliest_warn_time:
        if not stoppage_alert.GetStoppageAlert(test.test_path,
                                               last_row.revision):
            yield op.db.Put(stoppage_alert.CreateStoppageAlert(test, last_row))
Ejemplo n.º 3
0
 def testGetStoppageAlert_EntityExists_ReturnsEntity(self):
     test, row = self._AddSampleData()
     stoppage_alert.CreateStoppageAlert(test, row).put()
     self.assertIsNotNone(
         stoppage_alert.GetStoppageAlert(test.test_path, row.revision))
Ejemplo n.º 4
0
 def testGetStoppageAlert_NoEntity_ReturnsNone(self):
     self.assertIsNone(stoppage_alert.GetStoppageAlert(
         'M/b/suite/bar', 123))