from gltesting.fixtures import *
import pytest
import glsdk
def test_import_glsdk():
assert glsdk is not None
assert hasattr(glsdk, "Credentials")
assert hasattr(glsdk, "Node")
assert hasattr(glsdk, "Signer")
assert hasattr(glsdk, "Error")
def test_credentials_load_empty():
credentials = glsdk.Credentials.load(b"")
assert credentials is not None
assert isinstance(credentials, glsdk.Credentials)
def test_credentials_load_invalid():
credentials = glsdk.Credentials.load(b"invalid data")
assert credentials is not None
def test_credentials_type_error():
with pytest.raises(TypeError):
glsdk.Credentials.load("not bytes")
def test_credentials_multiple_loads():
creds1 = glsdk.Credentials.load(b"test1")
creds2 = glsdk.Credentials.load(b"test2")
creds3 = glsdk.Credentials.load(b"test3")
assert all(isinstance(c, glsdk.Credentials) for c in [creds1, creds2, creds3])
def test_node_creation_fails_with_empty_creds():
creds = glsdk.Credentials.load(b"")
with pytest.raises(glsdk.Error):
node = glsdk.Node(creds)
def test_developer_cert_construction():
cert = glsdk.DeveloperCert(b"fake-cert-pem", b"fake-key-pem")
assert cert is not None
assert isinstance(cert, glsdk.DeveloperCert)
def test_developer_cert_type_error():
with pytest.raises(TypeError):
glsdk.DeveloperCert("not bytes", b"key")
with pytest.raises(TypeError):
glsdk.DeveloperCert(b"cert", "not bytes")
def test_scheduler_with_developer_cert():
cert = glsdk.DeveloperCert(b"fake-cert-pem", b"fake-key-pem")
scheduler = glsdk.Scheduler(glsdk.Network.BITCOIN)
scheduler_with_cert = scheduler.with_developer_cert(cert)
assert scheduler_with_cert is not None
assert isinstance(scheduler_with_cert, glsdk.Scheduler)
def test_register_with_developer_cert(scheduler, nobody_id):
dev_cert = glsdk.DeveloperCert(nobody_id.cert_chain, nobody_id.private_key)
signer = glsdk.Signer(
"abandon abandon abandon abandon abandon abandon "
"abandon abandon abandon abandon abandon about"
)
s = glsdk.Scheduler(glsdk.Network.BITCOIN).with_developer_cert(dev_cert)
creds = s.register(signer, code=None)
assert creds is not None
assert isinstance(creds, glsdk.Credentials)
def test_register_and_auth(scheduler, clients):
signer = glsdk.Signer(
"abandon abandon abandon abandon abandon abandon "
"abandon abandon abandon abandon abandon about"
)
scheduler = glsdk.Scheduler(glsdk.Network.BITCOIN)
creds = scheduler.register(signer, code=None)