Source code for uw.local.print_.bin.submit_test_requisition
"""Test job submission program entry point.
Python process to submit a print job from a dev instance to the production
instance and thereby send it to NMS for real.
"""
import argparse
import sys
from uw.sql.wrap import open_psycopg2_db_service_cursor
from ..db.nms_requisition import nms_requisition
[docs]def main ():
parser = argparse.ArgumentParser ()
parser.add_argument ('--service', required=True, metavar='service', help='The Postgres service name for the dev instance')
parser.add_argument ('--job', required=True, type=int, metavar='job_id', help='The job_id of the job to submit to production')
args = parser.parse_args ()
prod_cursor = open_psycopg2_db_service_cursor ()
dev_cursor = open_psycopg2_db_service_cursor (service=args.service)
dev_job = dev_cursor.execute_required_tuple ("select * from nms_requisition where job_id = %(job_id)s", job_id=args.job)
if dev_job.job_cancelled is not None:
sys.exit ('Job is already cancelled.')
if dev_job.job_submitted is not None:
sys.exit ('Job is already submitted.')
if dev_job.job_ready is None:
sys.exit ('Job is not ready.')
values = dev_cursor.execute_tuples ("select * from nms_requisition_form_value where job_id = %(job_id)s", job_id=dev_job.job_id)
files = dev_cursor.execute_tuples ("select * from nms_requisition_file where job_id = %(job_id)s", job_id=dev_job.job_id)
dev_cursor.callproc_none ("nms_requisition_submitted", dev_job.job_id)
dev_cursor.connection.commit ()
prod_job = nms_requisition (prod_cursor)
print('New job %d created.' % prod_job.job_id)
for value in values:
if value.field_code == 'jobtitle':
field_value = 'Test - %s - DO NOT PRINT' % value.field_value
else:
field_value = value.field_value
prod_job.set_value (value.field_code, field_value)
for file in files:
prod_job.attach_file (file.file_code, file.file_contents)
prod_cursor.connection.commit ()