forked from forks/microblog.pub
Fix LD sig tests
This commit is contained in:
parent
9c325674c6
commit
1c9b73b170
3 changed files with 17 additions and 3 deletions
|
@ -83,3 +83,6 @@ extend-exclude = '''
|
||||||
| alembic/versions
|
| alembic/versions
|
||||||
)/
|
)/
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
[tool.pytest.ini_options]
|
||||||
|
asyncio_mode = "auto"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
from typing import Generator
|
from typing import Generator
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
import pytest_asyncio
|
||||||
from fastapi.testclient import TestClient
|
from fastapi.testclient import TestClient
|
||||||
|
|
||||||
from app.database import Base
|
from app.database import Base
|
||||||
|
@ -11,7 +12,7 @@ from app.main import app
|
||||||
from tests.factories import _Session
|
from tests.factories import _Session
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest_asyncio.fixture
|
||||||
async def async_db_session():
|
async def async_db_session():
|
||||||
async with async_session() as session:
|
async with async_session() as session:
|
||||||
async with async_engine.begin() as conn:
|
async with async_engine.begin() as conn:
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
|
||||||
|
import httpx
|
||||||
|
import pytest
|
||||||
|
from respx import MockRouter
|
||||||
|
|
||||||
from app import activitypub as ap
|
from app import activitypub as ap
|
||||||
from app import ldsig
|
from app import ldsig
|
||||||
|
from app.database import AsyncSession
|
||||||
from app.key import Key
|
from app.key import Key
|
||||||
from tests import factories
|
from tests import factories
|
||||||
|
|
||||||
|
@ -28,7 +33,11 @@ _SAMPLE_CREATE = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def test_linked_data_sig():
|
@pytest.mark.asyncio
|
||||||
|
async def test_linked_data_sig(
|
||||||
|
async_db_session: AsyncSession,
|
||||||
|
respx_mock: MockRouter,
|
||||||
|
) -> None:
|
||||||
privkey, pubkey = factories.generate_key()
|
privkey, pubkey = factories.generate_key()
|
||||||
ra = factories.RemoteActorFactory(
|
ra = factories.RemoteActorFactory(
|
||||||
base_url="https://microblog.pub",
|
base_url="https://microblog.pub",
|
||||||
|
@ -37,8 +46,9 @@ def test_linked_data_sig():
|
||||||
)
|
)
|
||||||
k = Key(ra.ap_id, f"{ra.ap_id}#main-key")
|
k = Key(ra.ap_id, f"{ra.ap_id}#main-key")
|
||||||
k.load(privkey)
|
k.load(privkey)
|
||||||
|
respx_mock.get(ra.ap_id).mock(return_value=httpx.Response(200, json=ra.ap_actor))
|
||||||
|
|
||||||
doc = deepcopy(_SAMPLE_CREATE)
|
doc = deepcopy(_SAMPLE_CREATE)
|
||||||
|
|
||||||
ldsig.generate_signature(doc, k)
|
ldsig.generate_signature(doc, k)
|
||||||
assert ldsig.verify_signature(doc, k)
|
assert (await ldsig.verify_signature(async_db_session, doc)) is True
|
||||||
|
|
Loading…
Reference in a new issue