예제 #1
0
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
예제 #2
0
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
예제 #3
0
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()