fix: wrap test_delete_existing_community.py code in test function

- Fixes pytest collection error during import
- Prevents code execution at module level
- Maintains functionality when run as script
- All 361 tests now collect successfully
This commit is contained in:
2025-08-12 13:23:59 +03:00
parent 2eeabae847
commit 124763bed7

View File

@@ -4,15 +4,18 @@
"""
import json
import pytest
import requests
# GraphQL endpoint
url = "http://localhost:8000/graphql"
# Сначала авторизуемся
login_mutation = """
mutation Login($email: String!, $password: String!) {
def test_delete_existing_community():
"""Тест удаления существующего сообщества через API"""
# Сначала авторизуемся
login_mutation = """
mutation Login($email: String!, $password: String!) {
login(email: $email, password: $password) {
token
author {
@@ -21,58 +24,66 @@ mutation Login($email: String!, $password: String!) {
email
}
}
}
"""
}
"""
login_variables = {"email": "test_admin@discours.io", "password": "password123"}
login_variables = {"email": "test_admin@discours.io", "password": "password123"}
print("🔐 Авторизуемся...")
response = requests.post(url, json={"query": login_mutation, "variables": login_variables})
print("🔐 Авторизуемся...")
response = requests.post(url, json={"query": login_mutation, "variables": login_variables})
if response.status_code != 200:
if response.status_code != 200:
print(f"❌ Ошибка авторизации: {response.status_code}")
print(response.text)
exit(1)
pytest.fail(f"Ошибка авторизации: {response.status_code}")
login_data = response.json()
print(f"✅ Авторизация успешна: {json.dumps(login_data, indent=2)}")
login_data = response.json()
print(f"✅ Авторизация успешна: {json.dumps(login_data, indent=2)}")
if "errors" in login_data:
if "errors" in login_data:
print(f"❌ Ошибки в авторизации: {login_data['errors']}")
exit(1)
pytest.fail(f"Ошибки в авторизации: {login_data['errors']}")
token = login_data["data"]["login"]["token"]
author_id = login_data["data"]["login"]["author"]["id"]
print(f"🔑 Токен получен: {token[:50]}...")
print(f"👤 Author ID: {author_id}")
token = login_data["data"]["login"]["token"]
author_id = login_data["data"]["login"]["author"]["id"]
print(f"🔑 Токен получен: {token[:50]}...")
print(f"👤 Author ID: {author_id}")
# Теперь попробуем удалить существующее сообщество
delete_mutation = """
mutation DeleteCommunity($slug: String!) {
# Теперь попробуем удалить существующее сообщество
delete_mutation = """
mutation DeleteCommunity($slug: String!) {
delete_community(slug: $slug) {
success
error
}
}
"""
}
"""
delete_variables = {"slug": "test-admin-community-test-26b67fa4"}
delete_variables = {"slug": "test-admin-community-test-26b67fa4"}
headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
print(f"\n🗑️ Пытаемся удалить сообщество {delete_variables['slug']}...")
response = requests.post(url, json={"query": delete_mutation, "variables": delete_variables}, headers=headers)
print(f"\n🗑️ Пытаемся удалить сообщество {delete_variables['slug']}...")
response = requests.post(url, json={"query": delete_mutation, "variables": delete_variables}, headers=headers)
print(f"📊 Статус ответа: {response.status_code}")
print(f"📄 Ответ: {response.text}")
print(f"📊 Статус ответа: {response.status_code}")
print(f"📄 Ответ: {response.text}")
if response.status_code == 200:
if response.status_code == 200:
data = response.json()
print(f"📋 JSON ответ: {json.dumps(data, indent=2)}")
if "errors" in data:
print(f"❌ GraphQL ошибки: {data['errors']}")
pytest.fail(f"GraphQL ошибки: {data['errors']}")
else:
print(f"✅ Результат: {data['data']['delete_community']}")
else:
# Проверяем, что удаление прошло успешно
assert data['data']['delete_community']['success'] is True
else:
print(f"❌ HTTP ошибка: {response.status_code}")
pytest.fail(f"HTTP ошибка: {response.status_code}")
if __name__ == "__main__":
# Для запуска как скрипт
pytest.main([__file__, "-v"])