示例#1
0
def test_qpu_reengage_when_invalid():
    config = PyquilConfig()
    engagement = Engagement(
        server_public_key=b"abc123",
        client_public_key=b"abc123",
        client_secret_key=b"abc123",
        expires_at=9999999999.0,
        qpu_endpoint="tcp://fake.qpu:50053",
        qpu_compiler_endpoint="tcp://fake.compiler:5555",
    )

    assert engagement.is_valid()

    session = get_session(config=config)
    config._engagement_requested = True
    config.get_engagement = lambda: engagement

    qpu = QPU(session=session)

    assert qpu._client_engagement is None
    assert qpu._get_client_auth_config() is not None
    assert qpu._client_engagement is engagement

    # By expiring the previous engagement, we expect QPU to attempt to re-engage
    engagement.expires_at = 0.0
    assert not engagement.is_valid()

    new_engagement = Engagement(
        server_public_key=b"abc12345",
        client_public_key=b"abc12345",
        client_secret_key=b"abc12345",
        expires_at=9999999999.0,
        qpu_endpoint="tcp://fake.qpu:50053",
        qpu_compiler_endpoint="tcp://fake.compiler:5555",
    )

    config.get_engagement = lambda: new_engagement

    new_auth_config = qpu._get_client_auth_config()
    assert new_auth_config is not None
    assert new_auth_config.client_public_key == new_engagement.client_public_key
    assert qpu._client_engagement is new_engagement

    new_engagement.expires_at = 0.0
    config.get_engagement = lambda: None

    assert qpu._get_client_auth_config() is None
示例#2
0
def test_qpu_does_not_engage_without_session():
    qpu = QPU(endpoint="tcp://fake.qpu:50052")

    assert qpu._get_client_auth_config() is None