Build reusable bot framework
Some checks failed
CI / test (push) Has been cancelled
CI / compose-smoke (push) Has been cancelled

This commit is contained in:
Chelsea Lee
2026-07-19 21:53:24 -05:00
parent 7ecc1107b2
commit fbdf33e894
66 changed files with 8428 additions and 0 deletions

77
tests/unit/conftest.py Normal file
View File

@@ -0,0 +1,77 @@
"""Small import fallbacks for running focused tests without optional services."""
import sys
import types
try:
import psycopg2 # noqa: F401
except ModuleNotFoundError:
psycopg2 = types.ModuleType("psycopg2")
extras = types.ModuleType("psycopg2.extras")
errors = types.ModuleType("psycopg2.errors")
class Json:
def __init__(self, adapted):
self.adapted = adapted
class RealDictCursor:
pass
class UniqueViolation(Exception):
pass
def connect(**_kwargs):
raise AssertionError("Tests must mock PostgreSQL connections")
def execute_values(*_args, **_kwargs):
raise AssertionError("Tests must mock bulk PostgreSQL writes")
extras.Json = Json
extras.RealDictCursor = RealDictCursor
extras.execute_values = execute_values
errors.UniqueViolation = UniqueViolation
psycopg2.connect = connect
psycopg2.extras = extras
psycopg2.errors = errors
sys.modules["psycopg2"] = psycopg2
sys.modules["psycopg2.extras"] = extras
sys.modules["psycopg2.errors"] = errors
try:
import bcrypt # noqa: F401
except ModuleNotFoundError:
bcrypt = types.ModuleType("bcrypt")
def unavailable(*_args, **_kwargs):
raise AssertionError("Tests exercising bcrypt require project dependencies")
bcrypt.gensalt = unavailable
bcrypt.hashpw = unavailable
bcrypt.checkpw = unavailable
sys.modules["bcrypt"] = bcrypt
try:
import jwt # noqa: F401
except ModuleNotFoundError:
jwt = types.ModuleType("jwt")
exceptions = types.ModuleType("jwt.exceptions")
class ExpiredSignatureError(Exception):
pass
class InvalidTokenError(Exception):
pass
def unavailableJwt(*_args, **_kwargs):
raise AssertionError("Tests exercising JWT encoding require project dependencies")
jwt.encode = unavailableJwt
jwt.decode = unavailableJwt
exceptions.ExpiredSignatureError = ExpiredSignatureError
exceptions.InvalidTokenError = InvalidTokenError
jwt.exceptions = exceptions
sys.modules["jwt"] = jwt
sys.modules["jwt.exceptions"] = exceptions