Skip to content

Commit

Permalink
test: test adapting
Browse files Browse the repository at this point in the history
  • Loading branch information
Picred committed Oct 24, 2023
1 parent c2b5def commit b1c0130
Showing 1 changed file with 24 additions and 34 deletions.
58 changes: 24 additions & 34 deletions tests/main_test.py
Original file line number Diff line number Diff line change
@@ -1,64 +1,64 @@
import pytest
from pytest_mock import MockerFixture
from telegram import Message, Chat
from telegram.ext import Application
from telegram import Message, Chat, User, Update
from telegram.ext import Updater
from datetime import datetime
import main as main
from main import main
from module.shared import welcome
from module.commands.welcome import send_welcome, generate_welcome, get_new_user_name


def get_wel(lan_code: str) -> str:
wlc_mess_list = welcome[lan_code]

with open("src/welcome.json", "r") as f:
wlc_mess_list = main.load(f)[lan_code]

#first element of the list
return wlc_mess_list[0].replace("USER","@user")

possible_users = [
main.User(id=0, first_name='user', is_bot=True, username='user'), # bot with username
main.User(id=0, first_name='user', is_bot=True), # bot without username
main.User(id=0, first_name='user', is_bot=False, username='user'), # user with username
main.User(id=0, first_name='user', is_bot=False), # user without username
main.User(id=0, first_name='user', is_bot=False, username='user', language_code='it'), # italian user
main.User(id=0, first_name='user', is_bot=False, username='user', language_code='en') # english user (same codepath as language_code=None)
User(id=0, first_name='user', is_bot=True, username='user'), # bot with username
User(id=0, first_name='user', is_bot=True), # bot without username
User(id=0, first_name='user', is_bot=False, username='user'), # user with username
User(id=0, first_name='user', is_bot=False), # user without username
User(id=0, first_name='user', is_bot=False, username='user', language_code='it'), # italian user
User(id=0, first_name='user', is_bot=False, username='user', language_code='en') # english user (same codepath as language_code=None)
]

tests = [
{'func': main.get_new_user_name, 'expected_res': '@user', 'arg': (possible_users[0],)},
{'func': main.get_new_user_name, 'expected_res': 'user', 'arg': (possible_users[1],)},
{'func': main.get_new_user_name, 'expected_res': '@user', 'arg': (possible_users[2],)},
{'func': main.get_new_user_name, 'expected_res': 'user', 'arg': (possible_users[3],)},
{'func': get_new_user_name, 'expected_res': '@user', 'arg': (possible_users[0],)},
{'func': get_new_user_name, 'expected_res': 'user', 'arg': (possible_users[1],)},
{'func': get_new_user_name, 'expected_res': '@user', 'arg': (possible_users[2],)},
{'func': get_new_user_name, 'expected_res': 'user', 'arg': (possible_users[3],)},
{
'func': main.send_welcome,
'func': send_welcome,
'expected_res': None,
'arg': (main.Update(0, message=Message(0, new_chat_members=possible_users, chat=Chat(0, type='GROUP'), date=datetime.now())), None),
'arg': (Update(0, message=Message(0, new_chat_members=possible_users, chat=Chat(0, type='GROUP'), date=datetime.now())), None),
'mock_obj': [Message],
'mock_func': ['reply_text'],
'mock_ret': [True],
'is_async': True
},
{
'func': main.generate_welcome,
'func': generate_welcome,
'expected_res': get_wel('it'),
'arg': (possible_users[4],),
'mock_obj': [main],
'mock_func': ['randrange'],
'mock_ret': [0]
},
{
'func': main.generate_welcome,
'func': generate_welcome,
'expected_res': get_wel('en'),
'arg': (possible_users[5],),
'arg': (possible_users[5]),
'mock_obj': [main],
'mock_func': ['randrange'],
'mock_ret': [0]
},
{
'func': main.main,
'func': main,
'expected_res': None,
'arg': tuple(),
'mock_obj': [main, Application],
'mock_func': ['getenv', 'run_polling'],
'mock_obj': [main, Updater],
'mock_func': ['getenv', 'start_polling'],
'mock_ret': ['123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11', True]
}
]
Expand All @@ -79,13 +79,3 @@ async def test_generic(mocker: MockerFixture, test: dict) -> None:
assert res == test['expected_res']
for index, spy in enumerate(spyed_objects):
assert spy.spy_return == test['mock_ret'][index]


def test_init(mocker: MockerFixture) -> None:
mocker.patch.object(main, '__name__', '__main__')
mocker.patch.object(main, 'main', return_value=None)
spy = mocker.spy(main, 'main')

assert main.init() == None
assert spy.spy_return == None

0 comments on commit b1c0130

Please sign in to comment.