docs: def run(self) -> None:
          """
          processes entries in the queue until told to stop
          """
          while not self.cleanup:
              try:
                  result, test, additional_info = self.result_queue.get(timeout=1)
              except queue.Empty:
                  continue
  
              self.result_queue.task_done()
  
              if result == TestState.serialization_failure:
                  test = self.tests[test]
                  warnings.warn("Serialization error: {} on test {}".format(
                      additional_info, test), SerializationWarning)
                  test(self)
  
              else:
                  self.testsRun += 1
  
                  if result == TestState.success:
                      self.addSuccess(test)
                  elif result == TestState.failure:
                      self.addFailure(test, additional_info)
                  elif result == TestState.error:
                      self.addError(test, additional_info)
                  elif result == TestState.skipped:
                      self.addSkip(test, additional_info)
                  elif result == TestState.expected_failure:
                      self.addExpectedFailure(test, additional_info)
                  elif result == TestState.unexpected_success:
                      self.addUnexpectedSuccess(test)
                  else:
                      raise Exception("This is not a valid test type :", result)