Beispiel #1
0
    def test_removes_oldest_items_first(self):
        remove_count = QueryTaskTracker.prune(self.list, 50)
        self.assertEqual(remove_count, 50)
        self.assertEqual(redis_connection.zcard(self.list), 50)

        self.assertEqual(redis_connection.zscore(self.list, 'k:99'), 99.0)
        self.assertIsNone(redis_connection.zscore(self.list, 'k:1'))

        for k in self.keys[0:50]:
            self.assertFalse(redis_connection.exists(k))
Beispiel #2
0
    def test_removes_oldest_items_first(self):
        remove_count = QueryTaskTracker.prune(self.list, 50)
        self.assertEqual(remove_count, 50)
        self.assertEqual(redis_connection.zcard(self.list), 50)

        self.assertEqual(redis_connection.zscore(self.list, 'k:99'), 99.0)
        self.assertIsNone(redis_connection.zscore(self.list, 'k:1'))

        for k in self.keys[0:50]:
            self.assertFalse(redis_connection.exists(k))
Beispiel #3
0
def get_database_tables_with_columns(data_source_id, database_name, redis_key):
    try:
        data_source = models.DataSource.get_by_id(data_source_id)
        tables = data_source.query_runner.get_database_tables_with_columns(
            database_name
        )
        # check for tables since it doesn't return an error when the requested database doesn't exist
        if tables or redis_connection.exists(redis_key):
            redis_connection.set(redis_key, json_dumps(tables))
            redis_connection.expire(
                redis_key, DATABRICKS_REDIS_EXPIRATION_TIME,
            )
        return {"schema": tables, "has_columns": True}
    except Exception:
        return {"error": {"code": 2, "message": "Error retrieving schema."}}
Beispiel #4
0
 def paused(self):
     return redis_connection.exists(self._pause_key())
Beispiel #5
0
 def test_does_not_report_if_query_owner_is_disabled(self):
     self.factory.user.disable()
     key = self.notify()
     email_pending = redis_connection.exists(key)
     self.assertFalse(email_pending)
Beispiel #6
0
 def test_does_not_report_if_organization_is_not_subscribed(self):
     self.factory.org.set_setting('send_email_on_failed_scheduled_queries',
                                  False)
     key = self.notify()
     email_pending = redis_connection.exists(key)
     self.assertFalse(email_pending)
Beispiel #7
0
 def test_does_not_report_if_failure_count_is_beyond_limit(self):
     key = self.notify(
         schedule_failures=settings.MAX_FAILURE_REPORTS_PER_QUERY)
     email_pending = redis_connection.exists(key)
     self.assertFalse(email_pending)
Beispiel #8
0
 def test_schedules_email_if_failure_count_is_beneath_limit(self):
     key = self.notify(
         schedule_failures=settings.MAX_FAILURE_REPORTS_PER_QUERY - 1)
     email_pending = redis_connection.exists(key)
     self.assertTrue(email_pending)