add more tests (#19)

This commit is contained in:
Dmitry Afanasyev
2023-09-29 13:54:57 +03:00
committed by GitHub
parent 7cfda281f7
commit 90ec8ccec1
15 changed files with 263 additions and 76 deletions

View File

@@ -1,8 +1,12 @@
import string
import time
from typing import Any
import factory
import factory.fuzzy
from faker import Faker
from constants import BotStagesEnum
from tests.integration.factories.models import Chat, User
faker = Faker("ru_RU")
@@ -55,3 +59,38 @@ class BotEntitleFactory(factory.DictFactory):
type = "bot_command"
offset = 0
length = 7
class BotMessageFactory(factory.DictFactory):
message_id = factory.Faker("random_int", min=10**8, max=10**9 - 1)
chat = factory.LazyFunction(lambda: BotChatFactory()._asdict())
date = time.time()
text = factory.Faker("text")
entities = factory.LazyFunction(lambda: [BotEntitleFactory()])
@classmethod
def create_instance(cls, **kwargs: Any) -> dict[str, Any]:
data = {**cls.build(**kwargs), "from": BotUserFactory()._asdict()}
return data
class BotUpdateFactory(factory.DictFactory):
update_id = factory.Faker("random_int", min=10**8, max=10**9 - 1)
message = factory.LazyFunction(lambda: BotMessageFactory.create_instance())
class CallBackFactory(factory.DictFactory):
id = factory.Faker("bothify", text="###################")
chat_instance = factory.Faker("bothify", text="###################")
message = factory.LazyFunction(lambda: BotMessageFactory.create_instance())
data = factory.fuzzy.FuzzyChoice(BotStagesEnum)
@classmethod
def create_instance(cls, **kwargs: Any) -> dict[str, Any]:
data = {**cls.build(**kwargs), "from": BotUserFactory()._asdict()}
return data
class BotCallBackQueryFactory(factory.DictFactory):
update_id = factory.Faker("random_int", min=10**8, max=10**9 - 1)
callback_query = factory.LazyFunction(lambda: BotMessageFactory.create_instance())