/ packages / auths-python / tests / test_verify_capability.py
test_verify_capability.py
 1  """Tests for capability-based verification (Phase 2).
 2  
 3  These tests use the bare FFI functions directly since they don't require
 4  a full git registry — just attestation JSON and public keys.
 5  """
 6  
 7  import json
 8  
 9  import pytest
10  
11  from auths import Auths
12  
13  TEST_SEED_HEX = "a" * 64
14  
15  
16  def test_verify_without_capability_backwards_compat():
17      """Calling verify without required_capability should work as before."""
18      auths = Auths()
19      with pytest.raises(Exception):
20          auths.verify(attestation_json="{}", issuer_key="bad-hex")
21  
22  
23  def test_verify_with_capability_invalid_attestation():
24      """Invalid attestation should still fail even with capability param."""
25      auths = Auths()
26      with pytest.raises(Exception):
27          auths.verify(
28              attestation_json="{}",
29              issuer_key="bad-hex",
30              required_capability="sign_commit",
31          )
32  
33  
34  def test_verify_chain_without_capability_backwards_compat():
35      """Calling verify_chain without required_capability should work as before."""
36      auths = Auths()
37      with pytest.raises(Exception):
38          auths.verify_chain(attestations=["{}"], root_key="bad-hex")
39  
40  
41  def test_verify_chain_with_capability_invalid_attestation():
42      """Invalid chain should still fail even with capability param."""
43      auths = Auths()
44      with pytest.raises(Exception):
45          auths.verify_chain(
46              attestations=["{}"],
47              root_key="bad-hex",
48              required_capability="sign_commit",
49          )
50  
51  
52  def test_bare_function_imports():
53      """The capability functions should be importable from auths.verify."""
54      from auths.verify import (
55          verify_attestation_with_capability,
56          verify_chain_with_capability,
57      )
58  
59      assert verify_attestation_with_capability is not None
60      assert verify_chain_with_capability is not None