mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-08 04:52:30 +00:00
Add example unit test and config for testing
Add testing configuration: - pytest as test framework - tox for creating testing environments and running tests (run with `tox`) - pytest-asycio for asyncio testing - coverage/pytest-cov for measuring test coverage - flake8 for pep8 checking I've also added one quick example test demonstrating basic unit testing and use of the basic fixtures and marks provided by pytest-asyncio. Just this already covers a suprising 32% of the codebase, mostly through imports, but I wouldn't expect it to be helpful yet. This should provide a good base to build on in the future though.
This commit is contained in:
0
tests/__init__.py
Normal file
0
tests/__init__.py
Normal file
0
tests/telethon/__init__.py
Normal file
0
tests/telethon/__init__.py
Normal file
59
tests/telethon/test_helpers.py
Normal file
59
tests/telethon/test_helpers.py
Normal file
@@ -0,0 +1,59 @@
|
||||
"""
|
||||
tests for telethon.helpers
|
||||
"""
|
||||
|
||||
from base64 import b64decode
|
||||
|
||||
import pytest
|
||||
|
||||
from telethon import helpers
|
||||
|
||||
|
||||
def test_strip_text():
|
||||
assert helpers.strip_text(" text ", []) == "text"
|
||||
# I can't interpret the rest of the code well enough yet
|
||||
|
||||
|
||||
class TestSyncifyAsyncContext:
|
||||
class NoopContextManager:
|
||||
def __init__(self, loop):
|
||||
self.count = 0
|
||||
self.loop = loop
|
||||
|
||||
async def __aenter__(self):
|
||||
self.count += 1
|
||||
return self
|
||||
|
||||
async def __aexit__(self, exc_type, *args):
|
||||
assert exc_type is None
|
||||
self.count -= 1
|
||||
|
||||
__enter__ = helpers._sync_enter
|
||||
__exit__ = helpers._sync_exit
|
||||
|
||||
def test_sync_acontext(self, event_loop):
|
||||
contm = self.NoopContextManager(event_loop)
|
||||
assert contm.count == 0
|
||||
|
||||
with contm:
|
||||
assert contm.count == 1
|
||||
|
||||
assert contm.count == 0
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_async_acontext(self, event_loop):
|
||||
contm = self.NoopContextManager(event_loop)
|
||||
assert contm.count == 0
|
||||
|
||||
async with contm:
|
||||
assert contm.count == 1
|
||||
|
||||
assert contm.count == 0
|
||||
|
||||
|
||||
def test_generate_key_data_from_nonce():
|
||||
gkdfn = helpers.generate_key_data_from_nonce
|
||||
|
||||
key_expect = b64decode(b'NFwRFB8Knw/kAmvPWjtrQauWysHClVfQh0UOAaABqZA=')
|
||||
nonce_expect = b64decode(b'1AgjhU9eDvJRjFik73bjR2zZEATzL/jLu9yodYfWEgA=')
|
||||
assert gkdfn(123456789, 1234567) == (key_expect, nonce_expect)
|
Reference in New Issue
Block a user