- Added support for CORS origins and a new environment variable for miniapp access control. - Implemented date validation for API requests to ensure correct date formats. - Updated FastAPI app to allow access without Telegram initData for local development. - Enhanced error handling and logging for better debugging. - Added tests for API functionality and Telegram initData validation. - Updated README with new environment variable details and testing instructions. - Modified Docker and Git ignore files to include additional directories and files.
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
"""Tests for config.is_admin and config.can_access_miniapp."""
|
|
import pytest
|
|
|
|
import config
|
|
|
|
|
|
def test_is_admin_true_when_in_admin_list(monkeypatch):
|
|
monkeypatch.setattr(config, "ADMIN_USERNAMES", {"admin1", "admin2"})
|
|
assert config.is_admin("admin1") is True
|
|
assert config.is_admin("ADMIN1") is True
|
|
assert config.is_admin("admin2") is True
|
|
|
|
|
|
def test_is_admin_false_when_not_in_list(monkeypatch):
|
|
monkeypatch.setattr(config, "ADMIN_USERNAMES", {"admin1"})
|
|
assert config.is_admin("other") is False
|
|
assert config.is_admin("") is False
|
|
|
|
|
|
def test_can_access_miniapp_allowed_username(monkeypatch):
|
|
monkeypatch.setattr(config, "ALLOWED_USERNAMES", {"user1"})
|
|
monkeypatch.setattr(config, "ADMIN_USERNAMES", set())
|
|
assert config.can_access_miniapp("user1") is True
|
|
assert config.can_access_miniapp("USER1") is True
|
|
|
|
|
|
def test_can_access_miniapp_admin_has_access(monkeypatch):
|
|
monkeypatch.setattr(config, "ALLOWED_USERNAMES", set())
|
|
monkeypatch.setattr(config, "ADMIN_USERNAMES", {"admin1"})
|
|
assert config.can_access_miniapp("admin1") is True
|
|
|
|
|
|
def test_can_access_miniapp_denied(monkeypatch):
|
|
monkeypatch.setattr(config, "ALLOWED_USERNAMES", {"user1"})
|
|
monkeypatch.setattr(config, "ADMIN_USERNAMES", set())
|
|
assert config.can_access_miniapp("other") is False
|
|
assert config.can_access_miniapp("") is False
|