Module run
Contains TestJCJob, TestSPJob, TestQueue, and Runner
  classes.
  TestJCJob is a test utility-specific subclass of 
  queue.JobControlJob. TestSPJob is a test utility-specific subclass of 
  queue.SubprocessJob.  These classes allow the test utility to track some 
  information that we care about as a job executes (for instance job 
  duration and test_id).  TestQueue is a subclass of queue.JobDJ, and allows 
  further control on reporting.
  Runner controls all job running parameters.  It is also 
  responsible for actually running the jobs and requesting their workups.  
  The meat is in Runner.__call__.
      Copyright:
        Schrodinger, Inc. All rights reserved.
      
      To Do:
        Merge TestQueue and Runner (QA-604)
      
 
    |  | JobDJError | 
    |  | TestJob Interface for the TestJCJob and TestSPJob classes
 | 
    |  | TestJCJob Like a normal JobControlJob, but:
 | 
    |  | TestSPJob Like a normal SubprocessJob job, but:
 | 
    |  | TestQueue Like a normal JobDJ, but:
 | 
    |  | Runner Runner controls all job running parameters within the backend test 
        utility code.
 | 
    |  | 
        
          | download_job(job) If job has a valid JobID attempt to download any remote files.
 |  |  | 
    |  |  | 
    |  | logger = log.get_logger('test_backend') | 
    |  | DOWNLOAD_FAILED = 'file download failed' | 
    |  | __package__ = 'schrodinger.test.stu' | 
| 
  | run_postmortem(job,
        product_name)
   |  |  This is any queue.BaseJob. If it has a jobid, run postmortem for that 
  particular job. Otherwise, run postmortem for the job database only. 
   |