6ede33ccdb
Build and Push Docker Images / create_manifest (web, surfsense-web, , cpu) (push) Has been cancelled
Build and Push Docker Images / finalize_release (push) Has been cancelled
Obsidian Plugin Lint / lint (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / compute_version (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / verify_digests (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, , cpu) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda, cuda) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda126, cuda126) (push) Has been cancelled
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from datetime import UTC, datetime, timedelta
|
|
|
|
import pytest
|
|
|
|
from app.db import ExternalChatBindingState
|
|
from app.gateway.pairing import generate_pairing_code, redeem_pairing_code
|
|
|
|
|
|
def test_generate_pairing_code_is_short_display_token():
|
|
code = generate_pairing_code()
|
|
|
|
assert len(code) >= 8
|
|
assert "\n" not in code
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_redeem_pairing_code_binds_pending_row(mocker):
|
|
binding = mocker.Mock()
|
|
binding.state = ExternalChatBindingState.PENDING
|
|
binding.pairing_code_expires_at = datetime.now(UTC) + timedelta(minutes=1)
|
|
scalars = mocker.Mock()
|
|
scalars.first.return_value = binding
|
|
result = mocker.Mock()
|
|
result.scalars.return_value = scalars
|
|
session = mocker.AsyncMock()
|
|
session.execute.return_value = result
|
|
|
|
redeemed = await redeem_pairing_code(
|
|
session,
|
|
code="abc",
|
|
external_peer_id="telegram:123",
|
|
external_peer_kind="direct",
|
|
external_display_name="Anish",
|
|
external_username="anish",
|
|
)
|
|
|
|
assert redeemed is binding
|
|
assert binding.state == ExternalChatBindingState.BOUND
|
|
assert binding.external_peer_id == "telegram:123"
|
|
assert binding.pairing_code is None
|