class DeltaGeneratorTestCase(unittest.TestCase): def setUp(self, override_root=True): self.report_queue = ReportQueue() if override_root: dg = self.new_delta_generator() setattr(threading.current_thread(), REPORT_CONTEXT_ATTR_NAME, MockReportContext(dg)) def tearDown(self): self.report_queue._clear() if hasattr(threading.current_thread(), REPORT_CONTEXT_ATTR_NAME): delattr(threading.current_thread(), REPORT_CONTEXT_ATTR_NAME) def new_delta_generator(self, *args, **kwargs): def enqueue_fn(msg): self.report_queue.enqueue(msg) return True if len(args) > 0: enqueue = args[0] args = args[1:] elif 'enqueue' in kwargs: enqueue = kwargs.pop('enqueue') else: enqueue = enqueue_fn return DeltaGenerator(enqueue, *args, **kwargs) def get_message_from_queue(self, index=-1): return self.report_queue._queue[index] def get_delta_from_queue(self, index=-1): return self.report_queue._queue[index].delta
class DeltaGeneratorTestCase(unittest.TestCase): def setUp(self, override_root=True): self.report_queue = ReportQueue() if override_root: main_dg = self.new_delta_generator() sidebar_dg = self.new_delta_generator(container=BlockPath.SIDEBAR) setattr( threading.current_thread(), REPORT_CONTEXT_ATTR_NAME, ReportContext( main_dg=main_dg, sidebar_dg=sidebar_dg, widgets=Widgets(), widget_ids_this_run=_WidgetIDSet(), uploaded_file_mgr=None, ), ) def tearDown(self): self.report_queue._clear() if hasattr(threading.current_thread(), REPORT_CONTEXT_ATTR_NAME): delattr(threading.current_thread(), REPORT_CONTEXT_ATTR_NAME) def new_delta_generator(self, *args, **kwargs): def enqueue_fn(msg): self.report_queue.enqueue(msg) return True if len(args) > 0: enqueue = args[0] args = args[1:] elif "enqueue" in kwargs: enqueue = kwargs.pop("enqueue") else: enqueue = enqueue_fn return DeltaGenerator(enqueue, *args, **kwargs) def get_message_from_queue(self, index=-1): """Get a ForwardMsg proto from the queue, by index. Returns ------- ForwardMsg """ return self.report_queue._queue[index] def get_delta_from_queue(self, index=-1): """Get a Delta proto from the queue, by index. Returns ------- Delta """ return self.report_queue._queue[index].delta
class DeltaGeneratorTestCase(unittest.TestCase): def setUp(self, override_root=True): self.report_queue = ReportQueue() self.override_root = override_root self.orig_report_ctx = None if self.override_root: self.orig_report_ctx = get_report_ctx() add_report_ctx( threading.current_thread(), ReportContext( session_id="test session id", enqueue=self.report_queue.enqueue, widgets=Widgets(), widget_ids_this_run=_WidgetIDSet(), uploaded_file_mgr=UploadedFileManager(), ), ) def tearDown(self): self.clear_queue() if self.override_root: add_report_ctx(threading.current_thread(), self.orig_report_ctx) def get_message_from_queue(self, index=-1): """Get a ForwardMsg proto from the queue, by index. Returns ------- ForwardMsg """ return self.report_queue._queue[index] def get_delta_from_queue(self, index=-1): """Get a Delta proto from the queue, by index. Returns ------- Delta """ deltas = self.get_all_deltas_from_queue() return deltas[index] def get_all_deltas_from_queue(self): """Return all the delta messages in our ReportQueue""" return [ msg.delta for msg in self.report_queue._queue if msg.HasField("delta") ] def clear_queue(self): self.report_queue._clear()