mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-23 09:53:45 +03:00
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
import unittest
|
|
import os
|
|
from io import BytesIO
|
|
from random import randint
|
|
from hashlib import sha256
|
|
from telethon import TelegramClient
|
|
|
|
# Fill in your api_id and api_hash when running the tests
|
|
# and REMOVE THEM once you've finished testing them.
|
|
api_id = None
|
|
api_hash = None
|
|
|
|
|
|
class HigherLevelTests(unittest.TestCase):
|
|
def setUp(self):
|
|
if not api_id or not api_hash:
|
|
raise ValueError('Please fill in both your api_id and api_hash.')
|
|
|
|
@unittest.skip("you can't seriously trash random mobile numbers like that :)")
|
|
def test_cdn_download(self):
|
|
client = TelegramClient(None, api_id, api_hash)
|
|
client.session.set_dc(0, '149.154.167.40', 80)
|
|
self.assertTrue(client.connect())
|
|
|
|
try:
|
|
phone = '+999662' + str(randint(0, 9999)).zfill(4)
|
|
client.send_code_request(phone)
|
|
client.sign_up('22222', 'Test', 'DC')
|
|
|
|
me = client.get_me()
|
|
data = os.urandom(2 ** 17)
|
|
client.send_file(
|
|
me, data,
|
|
progress_callback=lambda c, t:
|
|
print('test_cdn_download:uploading {:.2%}...'.format(c/t))
|
|
)
|
|
msg = client.get_messages(me)[1][0]
|
|
|
|
out = BytesIO()
|
|
client.download_media(msg, out)
|
|
self.assertEqual(sha256(data).digest(), sha256(out.getvalue()).digest())
|
|
|
|
out = BytesIO()
|
|
client.download_media(msg, out) # Won't redirect
|
|
self.assertEqual(sha256(data).digest(), sha256(out.getvalue()).digest())
|
|
|
|
client.log_out()
|
|
finally:
|
|
client.disconnect()
|