remove models update from migrations (#80)

* add bot models update script

* add last question at field

* update README.md
This commit is contained in:
Dmitry Afanasyev
2024-01-08 21:33:35 +03:00
committed by GitHub
parent 7cbe7b7c50
commit 28895f3510
16 changed files with 191 additions and 145 deletions

View File

@@ -1,4 +1,5 @@
import asyncio
import datetime
from unittest import mock
import httpx
@@ -414,6 +415,9 @@ async def test_ask_question_action_bot_user_not_exists(
created_user_question_count = dbsession.query(UserQuestionCount).filter_by(user_id=user["id"]).one()
assert created_user_question_count.question_count == 1
assert created_user_question_count.last_question_at - datetime.datetime.now() < datetime.timedelta( # noqa: DTZ005
seconds=2
)
async def test_ask_question_action_bot_user_already_exists(
@@ -466,6 +470,9 @@ async def test_ask_question_action_bot_user_already_exists(
updated_user_question_count = dbsession.query(UserQuestionCount).filter_by(user_id=user["id"]).one()
assert updated_user_question_count.question_count == existing_user_question_count + 1
assert updated_user_question_count.last_question_at - datetime.datetime.now() < datetime.timedelta( # noqa: DTZ005
seconds=2
)
async def test_ask_question_action_user_is_banned(

View File

@@ -0,0 +1,30 @@
import pytest
from sqlalchemy.orm import Session
from constants import ChatGptModelsEnum
from core.bot.models.chatgpt import ChatGptModels
from core.bot.services import ChatGptService
pytestmark = [
pytest.mark.asyncio,
pytest.mark.enable_socket,
]
async def test_models_update(dbsession: Session) -> None:
models = dbsession.query(ChatGptModels).all()
assert len(models) == 0
chatgpt_service = ChatGptService.build()
await chatgpt_service.update_chatgpt_models()
models = dbsession.query(ChatGptModels).all()
model_priorities = {model.model: model.priority for model in models}
assert len(models) == len(ChatGptModelsEnum.base_models_priority())
for model_priority in ChatGptModelsEnum.base_models_priority():
assert model_priorities[model_priority["model"]] == model_priority["priority"]

View File

@@ -34,6 +34,7 @@ class AccessTokenFactory(BaseModelFactory):
class UserQuestionCountFactory(BaseModelFactory):
user_id = factory.Sequence(lambda n: n + 1)
question_count = factory.Faker("random_int")
last_question_at = factory.Faker("past_datetime")
class Meta:
model = UserQuestionCount