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))
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."}}
def paused(self): return redis_connection.exists(self._pause_key())
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)
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)
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)
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)