def test_set_program_labels(client_constructor): grpc_client = setup_mock_(client_constructor) grpc_client.get_quantum_program.return_value = quantum.QuantumProgram( labels={'color': 'red', 'weather': 'sun', 'run': '1'}, label_fingerprint='hash' ) result = quantum.QuantumProgram(name='projects/proj/programs/prog') grpc_client.update_quantum_program.return_value = result client = EngineClient() labels = {'hello': 'world', 'color': 'blue', 'run': '1'} assert client.set_program_labels('proj', 'prog', labels) == result grpc_client.update_quantum_program.assert_called_with( quantum.UpdateQuantumProgramRequest( name='projects/proj/programs/prog', quantum_program=quantum.QuantumProgram( name='projects/proj/programs/prog', labels=labels, label_fingerprint='hash' ), update_mask=FieldMask(paths=['labels']), ) ) assert client.set_program_labels('proj', 'prog', {}) == result grpc_client.update_quantum_program.assert_called_with( quantum.UpdateQuantumProgramRequest( name='projects/proj/programs/prog', quantum_program=quantum.QuantumProgram( name='projects/proj/programs/prog', label_fingerprint='hash' ), update_mask=FieldMask(paths=['labels']), ) )
def test_set_program_description(client_constructor): grpc_client = setup_mock_(client_constructor) result = quantum.QuantumProgram(name='projects/proj/programs/prog') grpc_client.update_quantum_program.return_value = result client = EngineClient() assert client.set_program_description('proj', 'prog', 'A program') == result grpc_client.update_quantum_program.assert_called_with( quantum.UpdateQuantumProgramRequest( name='projects/proj/programs/prog', quantum_program=quantum.QuantumProgram( name='projects/proj/programs/prog', description='A program' ), update_mask=FieldMask(paths=['description']), ) ) assert client.set_program_description('proj', 'prog', '') == result grpc_client.update_quantum_program.assert_called_with( quantum.UpdateQuantumProgramRequest( name='projects/proj/programs/prog', quantum_program=quantum.QuantumProgram(name='projects/proj/programs/prog'), update_mask=FieldMask(paths=['description']), ) )
async def _set_program_labels_async( self, project_id: str, program_id: str, labels: Dict[str, str], fingerprint: str ) -> quantum.QuantumProgram: program_resource_name = _program_name_from_ids(project_id, program_id) request = quantum.UpdateQuantumProgramRequest( name=program_resource_name, quantum_program=quantum.QuantumProgram( name=program_resource_name, labels=labels, label_fingerprint=fingerprint ), update_mask=field_mask_pb2.FieldMask(paths=['labels']), ) return await self._send_request_async(self.grpc_client.update_quantum_program, request)
def test_remove_program_labels(client_constructor): grpc_client = setup_mock_(client_constructor) existing = quantum.QuantumProgram( labels={'color': 'red', 'weather': 'sun', 'run': '1'}, label_fingerprint='hash' ) grpc_client.get_quantum_program.return_value = existing result = quantum.QuantumProgram(name='projects/proj/programs/prog') grpc_client.update_quantum_program.return_value = result client = EngineClient() assert client.remove_program_labels('proj', 'prog', ['other']) == existing assert grpc_client.update_quantum_program.call_count == 0 assert client.remove_program_labels('proj', 'prog', ['hello', 'weather']) == result grpc_client.update_quantum_program.assert_called_with( quantum.UpdateQuantumProgramRequest( name='projects/proj/programs/prog', quantum_program=quantum.QuantumProgram( name='projects/proj/programs/prog', labels={'color': 'red', 'run': '1'}, label_fingerprint='hash', ), update_mask=FieldMask(paths=['labels']), ) ) assert client.remove_program_labels('proj', 'prog', ['color', 'weather', 'run']) == result grpc_client.update_quantum_program.assert_called_with( quantum.UpdateQuantumProgramRequest( name='projects/proj/programs/prog', quantum_program=quantum.QuantumProgram( name='projects/proj/programs/prog', label_fingerprint='hash' ), update_mask=FieldMask(paths=['labels']), ) )
def set_program_description(self, project_id: str, program_id: str, description: str) -> quantum.QuantumProgram: """Sets the description for a previously created quantum program. Args: project_id: A project_id of the parent Google Cloud Project. program_id: Unique ID of the program within the parent project. description: The new program description. Returns: The updated quantum program. """ program_resource_name = _program_name_from_ids(project_id, program_id) request = quantum.UpdateQuantumProgramRequest( name=program_resource_name, quantum_program=quantum.QuantumProgram(name=program_resource_name, description=description), update_mask=field_mask_pb2.FieldMask(paths=['description']), ) return self._make_request(self.grpc_client.update_quantum_program, request)