forked from LonamiWebs/Telethon
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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.
- Loading branch information
Showing
7 changed files
with
93 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 1,8 @@ | ||
[run] | ||
branch = true | ||
parallel = true | ||
source = | ||
telethon | ||
|
||
[report] | ||
precision = 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 1,3 @@ | ||
pytest | ||
pytest-cov | ||
pytest-asyncio |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 1,4 @@ | ||
cryptg | ||
pysocks | ||
hachoir3 | ||
hachoir | ||
pillow |
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 1,22 @@ | ||
[tox] | ||
envlist = py35,py36,py37,py38 | ||
|
||
[testenv] | ||
deps = | ||
-rrequirements.txt | ||
-roptional-requirements.txt | ||
-rdev-requirements.txt | ||
commands = | ||
# NOTE: you can run any command line tool here - not just tests | ||
pytest {posargs} | ||
|
||
# run with tox -e flake | ||
[testenv:flake] | ||
deps = | ||
-rrequirements.txt | ||
-roptional-requirements.txt | ||
-rdev-requirements.txt | ||
flake8 | ||
commands = | ||
# TODO: move options to dedicated flake8 config | ||
flake8 --exclude telethon/tl/,telethon/errors/rpcerrorlist.py --ignore E501,F401 telethon/ tests/ |