def test_processor_ids(): job = cg.EngineJob( 'a', 'b', 'steve', EngineContext(), _job=qtypes.QuantumJob(scheduling_config=qtypes.SchedulingConfig( processor_selector=qtypes.SchedulingConfig.ProcessorSelector( processor_names=['projects/a/processors/p']))), ) assert job.processor_ids() == ['p']
def test_create_job(client_constructor): grpc_client = setup_mock_(client_constructor) result = qtypes.QuantumJob(name='projects/proj/programs/prog/jobs/job0') grpc_client.create_quantum_job.return_value = result run_context = qtypes.any_pb2.Any() labels = {'hello': 'world'} client = EngineClient() assert client.create_job('proj', 'prog', 'job0', ['processor0'], run_context, 10, 'A job', labels) == ('job0', result) assert grpc_client.create_quantum_job.call_args[0] == ( 'projects/proj/programs/prog', qtypes.QuantumJob( name='projects/proj/programs/prog/jobs/job0', run_context=run_context, scheduling_config=qtypes.SchedulingConfig( priority=10, processor_selector=qtypes.SchedulingConfig.ProcessorSelector( processor_names=['projects/proj/processors/processor0'])), description='A job', labels=labels), False) assert client.create_job( 'proj', 'prog', 'job0', ['processor0'], run_context, 10, 'A job', ) == ('job0', result) assert grpc_client.create_quantum_job.call_args[0] == ( 'projects/proj/programs/prog', qtypes.QuantumJob( name='projects/proj/programs/prog/jobs/job0', run_context=run_context, scheduling_config=qtypes.SchedulingConfig( priority=10, processor_selector=qtypes.SchedulingConfig.ProcessorSelector( processor_names=['projects/proj/processors/processor0'])), description='A job'), False) assert client.create_job('proj', 'prog', 'job0', ['processor0'], run_context, 10, labels=labels) == ('job0', result) assert grpc_client.create_quantum_job.call_args[0] == ( 'projects/proj/programs/prog', qtypes.QuantumJob( name='projects/proj/programs/prog/jobs/job0', run_context=run_context, scheduling_config=qtypes.SchedulingConfig( priority=10, processor_selector=qtypes.SchedulingConfig.ProcessorSelector( processor_names=['projects/proj/processors/processor0'])), labels=labels), False) assert client.create_job('proj', 'prog', 'job0', ['processor0'], run_context, 10) == ('job0', result) assert grpc_client.create_quantum_job.call_args[0] == ( 'projects/proj/programs/prog', qtypes.QuantumJob( name='projects/proj/programs/prog/jobs/job0', run_context=run_context, scheduling_config=qtypes.SchedulingConfig( priority=10, processor_selector=qtypes.SchedulingConfig.ProcessorSelector( processor_names=['projects/proj/processors/processor0'])), ), False) assert client.create_job('proj', 'prog', job_id=None, processor_ids=['processor0'], run_context=run_context, priority=10) == ('job0', result) assert grpc_client.create_quantum_job.call_args[0] == ( 'projects/proj/programs/prog', qtypes.QuantumJob( run_context=run_context, scheduling_config=qtypes.SchedulingConfig( priority=10, processor_selector=qtypes.SchedulingConfig.ProcessorSelector( processor_names=['projects/proj/processors/processor0'])), ), False) with pytest.raises(ValueError, match='priority must be between 0 and 1000'): client.create_job('proj', 'prog', job_id=None, processor_ids=['processor0'], run_context=run_context, priority=5000)