Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated to 11.1.0 #19

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
language: python
python:
- "2.7"
- "3.3"
- "3.4"
- "3.5"
- "3.6"
Expand Down
23 changes: 12 additions & 11 deletions ptbtest/messagegenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ def get_message(self,
contact=None,
location=None,
venue=None,
new_chat_member=None,
new_chat_members=None,
left_chat_member=None,
new_chat_title=None,
new_chat_photo=None,
Expand Down Expand Up @@ -185,7 +185,7 @@ def get_message(self,
forward_from_chat (Optional[telegram.Chat]): channel this message is forwarded from
forward_date (Optional[int]): Original sent date
forward_from_message_id (Optional[int]): message id from forwarded channel post.
new_chat_member (Optional[telegram.User]): New member for this chat
new_chat_members (List[telegram.User]): Optional. Information about new members to the chat. (the bot itself may be one of these members).
left_chat_member (Optional[telegram.User]): Member left this chat
new_chat_title (Optional[str]): New title for the chat
new_chat_photo (Optional[lst(telegram.Photosize)] or True): New picture for the group
Expand Down Expand Up @@ -225,7 +225,7 @@ def get_message(self,
new_chat_photo = self._handle_status(
channel_chat_created, chat, delete_chat_photo, group_chat_created,
left_chat_member, migrate_from_chat_id, migrate_to_chat_id,
new_chat_member, new_chat_photo, new_chat_title, pinned_message,
new_chat_members, new_chat_photo, new_chat_title, pinned_message,
supergroup_chat_created)

audio, contact, document, location, photo, sticker, venue, video, voice = self._handle_attachments(
Expand All @@ -252,7 +252,7 @@ def get_message(self,
contact=contact,
location=location,
venue=venue,
new_chat_member=new_chat_member,
new_chat_members=new_chat_members,
left_chat_member=left_chat_member,
new_chat_title=new_chat_title,
new_chat_photo=new_chat_photo,
Expand Down Expand Up @@ -408,22 +408,23 @@ def _handle_forward(self, forward_date, forward_from, forward_from_chat,
def _handle_status(self, channel_chat_created, chat, delete_chat_photo,
group_chat_created, left_chat_member,
migrate_from_chat_id, migrate_to_chat_id,
new_chat_member, new_chat_photo, new_chat_title,
new_chat_members, new_chat_photo, new_chat_title,
pinned_message, supergroup_chat_created):
status_messages = [
new_chat_member, left_chat_member, new_chat_title, new_chat_photo,
new_chat_members, left_chat_member, new_chat_title, new_chat_photo,
delete_chat_photo, group_chat_created, supergroup_chat_created,
channel_chat_created, migrate_to_chat_id, migrate_from_chat_id,
pinned_message
]
if len([x for x in status_messages if x]) > 1:
raise BadMessageException(
"Limit to only one status message per message")
if new_chat_member:
if not isinstance(new_chat_member, User):
raise BadUserException
if chat.type == "private":
raise BadChatException("Can not add members to private chat")
if new_chat_members:
for new_chat_member in new_chat_members:
if not isinstance(new_chat_member, User):
raise BadUserException
if chat.type == "private":
raise BadChatException("Can not add members to private chat")
if left_chat_member:
if not isinstance(left_chat_member, User):
raise BadUserException
Expand Down
8 changes: 7 additions & 1 deletion ptbtest/mockbot.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@
import time

from telegram import (User, ReplyMarkup, TelegramObject)
from telegram.utils.request import Request
from telegram.error import TelegramError


logging.getLogger(__name__).addHandler(logging.NullHandler())


Expand Down Expand Up @@ -68,6 +70,7 @@ def __init__(self, username="MockBot", **kwargs):
from .chatgenerator import ChatGenerator
self.mg = MessageGenerator(bot=self)
self.cg = ChatGenerator()
self.request = Request()

@property
def sent_messages(self):
Expand Down Expand Up @@ -190,7 +193,7 @@ def decorator(self, *args, **kwargs):
return decorator

def getMe(self, timeout=None, **kwargs):
self.bot = User(0, "Mockbot", last_name="Bot", username=self._username)
self.bot = User(0, "Mockbot", last_name="Bot", is_bot=True, username=self._username)
return self.bot

@message
Expand Down Expand Up @@ -667,6 +670,9 @@ def setWebhook(self,
**kwargs):
return None

def delete_webhook(self, timeout=None, **kwargs):
return None

def leaveChat(self, chat_id, timeout=None, **kwargs):
data = {'chat_id': chat_id}

Expand Down
3 changes: 2 additions & 1 deletion ptbtest/usergenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def __init__(self):
PtbGenerator.__init__(self)

def get_user(self, first_name=None, last_name=None, username=None,
id=None):
id=None, is_bot=False):
"""
Returns a telegram.User object with the optionally given name(s) or username
If any of the arguments are omitted the names will be chosen randomly and the
Expand All @@ -66,5 +66,6 @@ def get_user(self, first_name=None, last_name=None, username=None,
return User(
id or self.gen_id(),
first_name,
is_bot=is_bot,
last_name=last_name,
username=username)
4 changes: 2 additions & 2 deletions readme.MD
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[![Build Status](https://travis-ci.org/Eldinnie/ptbtest.svg?branch=master)](https://travis-ci.org/Eldinnie/ptbtest) [![Documentation Status](https://readthedocs.org/projects/ptbtestsuite/badge/?version=master)](http://ptbtestsuite.readthedocs.io/en/master/?badge=master) [![Coverage Status](https://coveralls.io/repos/github/Eldinnie/ptbtest/badge.svg?branch=master)](https://coveralls.io/github/Eldinnie/ptbtest?branch=master)
[![PyPI](https://img.shields.io/pypi/v/ptbtest.svg)](https://pypi.python.org/pypi/ptbtest) [![PyPI](https://img.shields.io/pypi/pyversions/ptbtest.svg)](https://pypi.python.org/pypi/ptbtest) [![PyPI](https://img.shields.io/pypi/l/ptbtest.svg)](https://pypi.python.org/pypi/ptbtest)

# (In) compatibility
Unfortunately lately this testsuite has not been updated to any versions of python-telegram-bot higher than 6.0. Hopefully some time can be spent to update it soon.
# compatibility
Updated to 11.1.0

# ptbtest
## a testsuite for [Python telegram bot](https://github.com/python-telegram-bot/python-telegram-bot/)
Expand Down
Empty file added readme.rst
Empty file.
3 changes: 3 additions & 0 deletions tests/test_Callbackquerygenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
# You should have received a copy of the GNU Lesser Public License
# along with this program. If not, see [http://www.gnu.org/licenses/].
from __future__ import absolute_import
from os import sys
sys.path.append("..")

import unittest

from ptbtest import (BadBotException, BadCallbackQueryException,
Expand Down
3 changes: 3 additions & 0 deletions tests/test_Chatgenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
# You should have received a copy of the GNU Lesser Public License
# along with this program. If not, see [http://www.gnu.org/licenses/].
from __future__ import absolute_import
from os import sys
sys.path.append("..")

import unittest
from ptbtest import ChatGenerator
from ptbtest import UserGenerator
Expand Down
3 changes: 3 additions & 0 deletions tests/test_Inlinequerygenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
# You should have received a copy of the GNU Lesser Public License
# along with this program. If not, see [http://www.gnu.org/licenses/].
from __future__ import absolute_import
from os import sys
sys.path.append("..")

import unittest

from ptbtest.errors import (BadBotException, BadUserException)
Expand Down
14 changes: 8 additions & 6 deletions tests/test_Messagegenerator.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from __future__ import absolute_import
from os import sys
sys.path.append("..")

import unittest

Expand Down Expand Up @@ -270,16 +272,16 @@ def setUp(self):
self.ug = UserGenerator()
self.cg = ChatGenerator()

def test_new_chat_member(self):
def test_new_chat_members(self):
user = self.ug.get_user()
chat = self.cg.get_chat(type="group")
u = self.mg.get_message(chat=chat, new_chat_member=user)
self.assertEqual(u.message.new_chat_member.id, user.id)
u = self.mg.get_message(chat=chat, new_chat_members=[user])
self.assertEqual(u.message.new_chat_members[0].id, user.id)

with self.assertRaises(BadChatException):
self.mg.get_message(new_chat_member=user)
self.mg.get_message(new_chat_members=[user])
with self.assertRaises(BadUserException):
self.mg.get_message(chat=chat, new_chat_member="user")
self.mg.get_message(chat=chat, new_chat_members=["user"])

def test_left_chat_member(self):
user = self.ug.get_user()
Expand Down Expand Up @@ -335,7 +337,7 @@ def test_multiple_statusmessages(self):
with self.assertRaises(BadMessageException):
self.mg.get_message(
private=False,
new_chat_member=self.ug.get_user(),
new_chat_members=self.ug.get_user(),
new_chat_title="New title")


Expand Down
4 changes: 3 additions & 1 deletion tests/test_Mockbot.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
# You should have received a copy of the GNU Lesser Public License
# along with this program. If not, see [http://www.gnu.org/licenses/].
from __future__ import absolute_import
from os import sys
sys.path.append("..")

import unittest

Expand Down Expand Up @@ -47,7 +49,7 @@ def start(bot, update):
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
updater.start_polling()
user = User(id=1, first_name="test")
user = User(id=1, first_name="test", is_bot=False)
chat = Chat(45, "group")
message = Message(
404, user, None, chat, text="/start", bot=self.mockbot)
Expand Down
3 changes: 3 additions & 0 deletions tests/test_Usergenerator.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
# You should have received a copy of the GNU Lesser Public License
# along with this program. If not, see [http://www.gnu.org/licenses/].
from __future__ import absolute_import
from os import sys
sys.path.append("..")

import unittest

from ptbtest import UserGenerator
Expand Down