pyrogram/tests/test_file_id.py
2020-11-20 01:22:37 +01:00

158 lines
6.6 KiB
Python

# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-2020 Dan <https://github.com/delivrance>
#
# This file is part of Pyrogram.
#
# Pyrogram is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
from pyrogram.file_id import FileId, FileUniqueId, FileType, FileUniqueType
def check(file_id: str, expected_file_type: FileType):
decoded = FileId.decode(file_id)
assert decoded.file_type == expected_file_type
assert decoded.encode() == file_id
def check_unique(file_unique_id: str, expected_file_unique_type: FileUniqueType):
decoded = FileUniqueId.decode(file_unique_id)
assert decoded.file_unique_type == expected_file_unique_type
assert decoded.encode() == file_unique_id
def test_audio():
audio = "CQACAgIAAx0CAAGgr9AAAgmQX7b4XPBstC1fFUuJBooHTHFd7HMAAgUAA4GkuUnVOGG5P196yR4E"
audio_unique = "AgADBQADgaS5SQ"
audio_thumb = "AAMCAgADHQIAAaCv0AACCZBftvhc8Gy0LV8VS4kGigdMcV3scwACBQADgaS5SdU4Ybk_X3rJIH3qihAAAwEAB20AA_OeAQABHgQ"
audio_thumb_unique = "AQADIH3qihAAA_OeAQAB"
check(audio, FileType.AUDIO)
check_unique(audio_unique, FileUniqueType.DOCUMENT)
check(audio_thumb, FileType.THUMBNAIL)
check_unique(audio_thumb_unique, FileUniqueType.PHOTO)
def test_video():
video = "BAACAgIAAx0CAAGgr9AAAgmRX7b4Xv9f-4BK5VR_5ppIOF6UIp0AAgYAA4GkuUmhnZz2xC37wR4E"
video_unique = "AgADBgADgaS5SQ"
video_thumb = "AAMCAgADHQIAAaCv0AACCZFftvhe_1_7gErlVH_mmkg4XpQinQACBgADgaS5SaGdnPbELfvBIH3qihAAAwEAB20AA_WeAQABHgQ"
video_thumb_unique = "AQADIH3qihAAA_WeAQAB"
check(video, FileType.VIDEO)
check_unique(video_unique, FileUniqueType.DOCUMENT)
check(video_thumb, FileType.THUMBNAIL)
check_unique(video_thumb_unique, FileUniqueType.PHOTO)
def test_document():
document = "BQACAgIAAx0CAAGgr9AAAgmPX7b4UxbjNoFEO_L0I4s6wrXNJA8AAgQAA4GkuUm9FFvIaOhXWR4E"
document_unique = "AgADBAADgaS5SQ"
document_thumb = "AAMCAgADHQIAAaCv0AACCY9ftvhTFuM2gUQ78vQjizrCtc0kDwACBAADgaS5Sb0UW8ho6FdZIH3qihAAAwEAB3MAA_GeAQABHgQ"
document_thumb_unique = "AQADIH3qihAAA_GeAQAB"
check(document, FileType.DOCUMENT)
check_unique(document_unique, FileUniqueType.DOCUMENT)
check(document_thumb, FileType.THUMBNAIL)
check_unique(document_thumb_unique, FileUniqueType.PHOTO)
def test_animation():
animation = "CgACAgIAAx0CAAGgr9AAAgmSX7b4Y2g8_QW2XFd49iUmRnHOyG8AAgcAA4GkuUnry9gWDzF_5R4E"
animation_unique = "AgADBwADgaS5SQ"
check(animation, FileType.ANIMATION)
check_unique(animation_unique, FileUniqueType.DOCUMENT)
def test_voice():
voice = "AwACAgIAAx0CAAGgr9AAAgmUX7b4c1KQyHVwzffxC2EnSYWsMAQAAgkAA4GkuUlsZUZ4_I97AR4E"
voice_unique = "AgADCQADgaS5SQ"
check(voice, FileType.VOICE)
check_unique(voice_unique, FileUniqueType.DOCUMENT)
def test_video_note():
video_note = "DQACAgIAAx0CAAGgr9AAAgmVX7b53qrRzCEO13BaLQJaYuFbdlwAAgoAA4GkuUmlqIzDy_PCsx4E"
video_note_unique = "AgADCgADgaS5SQ"
video_note_thumb = "AAMCAgADHQIAAaCv0AACCZVftvneqtHMIQ7XcFotAlpi4Vt2XAACCgADgaS5SaWojMPL88KzIH3qihAAAwEAB20AA_meAQABHgQ"
video_note_thumb_unique = "AQADIH3qihAAA_meAQAB"
check(video_note, FileType.VIDEO_NOTE)
check_unique(video_note_unique, FileUniqueType.DOCUMENT)
check(video_note_thumb, FileType.THUMBNAIL)
check_unique(video_note_thumb_unique, FileUniqueType.PHOTO)
def test_sticker():
sticker = "CAACAgEAAx0CAAGgr9AAAgmWX7b6uFeLlhXEgYrM8pIbGaQKRQ0AAswBAALjeAQAAbeooNv_tb6-HgQ"
sticker_unique = "AgADzAEAAuN4BAAB"
sticker_thumb = "AAMCAQADHQIAAaCv0AACCZZftvq4V4uWFcSBiszykhsZpApFDQACzAEAAuN4BAABt6ig2_-1vr5gWNkpAAQBAAdtAAM0BQACHgQ"
sticker_thumb_unique = "AQADYFjZKQAENAUAAg"
check(sticker, FileType.STICKER)
check_unique(sticker_unique, FileUniqueType.DOCUMENT)
check(sticker_thumb, FileType.THUMBNAIL)
check_unique(sticker_thumb_unique, FileUniqueType.PHOTO)
def test_photo():
photo_small = "AgACAgIAAx0CAAGgr9AAAgmZX7b7IPLRl8NcV3EJkzHwI1gwT-oAAq2nMRuBpLlJPJY-URZfhTkgfeqKEAADAQADAgADbQADAZ8BAAEeBA"
photo_small_unique = "AQADIH3qihAAAwGfAQAB"
photo_medium = "AgACAgIAAx0CAAGgr9AAAgmZX7b7IPLRl8NcV3EJkzHwI1gwT-oAAq2nMRuBpLlJPJY-URZfhTkgfeqKEAADAQADAgADeAADAp8BAAEeBA"
photo_medium_unique = "AQADIH3qihAAAwKfAQAB"
photo_big = "AgACAgIAAx0CAAGgr9AAAgmZX7b7IPLRl8NcV3EJkzHwI1gwT-oAAq2nMRuBpLlJPJY-URZfhTkgfeqKEAADAQADAgADeQAD_54BAAEeBA"
photo_big_unique = "AQADIH3qihAAA_-eAQAB"
check(photo_small, FileType.PHOTO)
check_unique(photo_small_unique, FileUniqueType.PHOTO)
check(photo_medium, FileType.PHOTO)
check_unique(photo_medium_unique, FileUniqueType.PHOTO)
check(photo_big, FileType.PHOTO)
check_unique(photo_big_unique, FileUniqueType.PHOTO)
def test_chat_photo():
user_photo_small = "AQADAgADrKcxGylBBQAJIH3qihAAAwIAAylBBQAF7bDHYwABnc983KcAAh4E"
user_photo_small_unique = "AQADIH3qihAAA9ynAAI"
user_photo_big = "AQADAgADrKcxGylBBQAJIH3qihAAAwMAAylBBQAF7bDHYwABnc983qcAAh4E"
user_photo_big_unique = "AQADIH3qihAAA96nAAI"
chat_photo_small = "AQADAgATIH3qihAAAwIAA3t3-P______AAjhngEAAR4E"
chat_photo_small_unique = "AQADIH3qihAAA-GeAQAB"
chat_photo_big = "AQADAgATIH3qihAAAwMAA3t3-P______AAjjngEAAR4E"
chat_photo_big_unique = "AQADIH3qihAAA-OeAQAB"
channel_photo_small = "AQADAgATIH3qihAAAwIAA-fFwCoX____MvARg8nvpc3RpwACHgQ"
channel_photo_small_unique = "AQADIH3qihAAA9GnAAI"
channel_photo_big = "AQADAgATIH3qihAAAwMAA-fFwCoX____MvARg8nvpc3TpwACHgQ"
channel_photo_big_unique = "AQADIH3qihAAA9OnAAI"
check(user_photo_small, FileType.CHAT_PHOTO)
check_unique(user_photo_small_unique, FileUniqueType.PHOTO)
check(user_photo_big, FileType.CHAT_PHOTO)
check_unique(user_photo_big_unique, FileUniqueType.PHOTO)
check(chat_photo_small, FileType.CHAT_PHOTO)
check_unique(chat_photo_small_unique, FileUniqueType.PHOTO)
check(chat_photo_big, FileType.CHAT_PHOTO)
check_unique(chat_photo_big_unique, FileUniqueType.PHOTO)
check(channel_photo_small, FileType.CHAT_PHOTO)
check_unique(channel_photo_small_unique, FileUniqueType.PHOTO)
check(channel_photo_big, FileType.CHAT_PHOTO)
check_unique(channel_photo_big_unique, FileUniqueType.PHOTO)