e3.testsuite.running_status
===========================

.. py:module:: e3.testsuite.running_status


Classes
-------

.. autoapisummary::

   e3.testsuite.running_status.RunningStatus


Module Contents
---------------

.. py:class:: RunningStatus(filename: str, update_interval: float = 1.0)

   .. py:attribute:: dag
      :type:  Optional[e3.collection.dag.DAG]
      :value: None



   .. py:attribute:: filename


   .. py:attribute:: lock


   .. py:attribute:: running
      :type:  Dict[str, e3.testsuite.fragment.TestFragment]

      Set of test fragments currently running, indexed by UID.



   .. py:attribute:: completed
      :type:  Dict[str, e3.testsuite.fragment.TestFragment]

      Set of test fragments that completed their job, indexed by UID.



   .. py:attribute:: status_counters
      :type:  Dict[e3.testsuite.result.TestStatus, int]

      Snapshot of the testsuite's report index status counters.

      We preserve a copy to avoid inconsistent state due to race conditions:
      these counters are updated in the collect_result method while the other
      sets are updated in TestFragment.run, which is executed in workers
      (i.e. other threads).



   .. py:attribute:: update_interval
      :value: 1.0



   .. py:attribute:: no_update_before
      :value: 0.0



   .. py:method:: set_dag(dag: e3.collection.dag.DAG) -> None

      Set the DAG that contains TestFragment instances.



   .. py:method:: start(fragment: e3.testsuite.fragment.TestFragment) -> None

      Put a fragment in the "running" set.



   .. py:method:: complete(fragment: e3.testsuite.fragment.TestFragment) -> None

      Move a fragment from the "running" set to the "completed" set.



   .. py:method:: set_status_counters(counters: Dict[e3.testsuite.result.TestStatus, int]) -> None


   .. py:method:: dump() -> None

      Write a report for this status as human-readable text to "fp".



