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']),
        )
    )
示例#3
0
 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']),
        )
    )
示例#5
0
    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)