aboutsummaryrefslogtreecommitdiffstats
path: root/tests/cogs/sync/test_users.py
diff options
context:
space:
mode:
authorGravatar Sebastiaan Zeeff <[email protected]>2019-10-02 16:59:03 +0200
committerGravatar Sebastiaan Zeeff <[email protected]>2019-10-11 17:42:21 +0200
commitc4213744c18be23e3e4484f126ae0b2d0eba4437 (patch)
treefa26b8d115eac7b9d46fd2abae966c3030f32e78 /tests/cogs/sync/test_users.py
parentMerge pull request #505 from python-discord/user-log-display-name-changes (diff)
Migrate pytest to unittest
After a discussion in the core developers channel, we have decided to migrate from `pytest` to `unittest` as the testing framework. This commit sets up the repository to use `unittest` and migrates the first couple of tests files to the new framework. What I have done to migrate to `unitest`: - Removed all `pytest` test files, since they are incompatible. - Removed `pytest`-related dependencies from the Pipfile. - Added `coverage.py` to the Pipfile dev-packages and relocked. - Added convenience scripts to Pipfile for running the test suite. - Adjust to `azure-pipelines.yml` to use `coverage.py` and `unittest`. - Migrated four test files from `pytest` to `unittest` format. In addition, I've added five helper Mock subclasses in `helpers.py` and created a `TestCase` subclass in `base.py` to add an assertion that asserts that no log records were logged within the context of the context manager. Obviously, these new utility functions and classes are fully tested in their respective `test_` files. Finally, I've started with an introductory guide for writing tests for our bot in `README.md`.
Diffstat (limited to 'tests/cogs/sync/test_users.py')
-rw-r--r--tests/cogs/sync/test_users.py69
1 files changed, 0 insertions, 69 deletions
diff --git a/tests/cogs/sync/test_users.py b/tests/cogs/sync/test_users.py
deleted file mode 100644
index a863ae35b..000000000
--- a/tests/cogs/sync/test_users.py
+++ /dev/null
@@ -1,69 +0,0 @@
-from bot.cogs.sync.syncers import User, get_users_for_sync
-
-
-def fake_user(**kwargs):
- kwargs.setdefault('id', 43)
- kwargs.setdefault('name', 'bob the test man')
- kwargs.setdefault('discriminator', 1337)
- kwargs.setdefault('avatar_hash', None)
- kwargs.setdefault('roles', (666,))
- kwargs.setdefault('in_guild', True)
- return User(**kwargs)
-
-
-def test_get_users_for_sync_returns_nothing_for_empty_params():
- assert get_users_for_sync({}, {}) == (set(), set())
-
-
-def test_get_users_for_sync_returns_nothing_for_equal_users():
- api_users = {43: fake_user()}
- guild_users = {43: fake_user()}
-
- assert get_users_for_sync(guild_users, api_users) == (set(), set())
-
-
-def test_get_users_for_sync_returns_users_to_update_on_non_id_field_diff():
- api_users = {43: fake_user()}
- guild_users = {43: fake_user(name='new fancy name')}
-
- assert get_users_for_sync(guild_users, api_users) == (
- set(),
- {fake_user(name='new fancy name')}
- )
-
-
-def test_get_users_for_sync_returns_users_to_create_with_new_ids_on_guild():
- api_users = {43: fake_user()}
- guild_users = {43: fake_user(), 63: fake_user(id=63)}
-
- assert get_users_for_sync(guild_users, api_users) == (
- {fake_user(id=63)},
- set()
- )
-
-
-def test_get_users_for_sync_updates_in_guild_field_on_user_leave():
- api_users = {43: fake_user(), 63: fake_user(id=63)}
- guild_users = {43: fake_user()}
-
- assert get_users_for_sync(guild_users, api_users) == (
- set(),
- {fake_user(id=63, in_guild=False)}
- )
-
-
-def test_get_users_for_sync_updates_and_creates_users_as_needed():
- api_users = {43: fake_user()}
- guild_users = {63: fake_user(id=63)}
-
- assert get_users_for_sync(guild_users, api_users) == (
- {fake_user(id=63)},
- {fake_user(in_guild=False)}
- )
-
-
-def test_get_users_for_sync_does_not_duplicate_update_users():
- api_users = {43: fake_user(in_guild=False)}
- guild_users = {}
-
- assert get_users_for_sync(guild_users, api_users) == (set(), set())