aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helpers.py (unfollow)
Commit message (Collapse)AuthorLines
2020-02-12Sync tests: test syncs with multiple rolesGravatar MarkKoz-15/+37
2020-02-12Sync tests: test API requests for role syncingGravatar MarkKoz-1/+34
2020-02-12Sync tests: create separate role test cases for diff and sync testsGravatar MarkKoz-2/+10
2020-02-12Sync tests: remove guild_roles lists and assign roles to variablesGravatar MarkKoz-14/+8
Makes the creation of the expected diff clearer since the variable has a name compared to accessing some index of a list.
2020-02-12Sync tests: remove diff test for updated and new roles togetherGravatar MarkKoz-19/+0
Redundant since test_diff_for_new_updated_and_deleted_roles tests all 3 types together.
2020-02-12Sync tests: test diff for all 3 role changes simultaneouslyGravatar MarkKoz-21/+17
2020-02-12Sync tests: test diff for deleted rolesGravatar MarkKoz-17/+10
2020-02-12Sync tests: test diff for new rolesGravatar MarkKoz-20/+15
2020-02-12Sync tests: create a role in setUp to use as a constantGravatar MarkKoz-6/+5
2020-02-12Sync tests: test diff for updated rolesGravatar MarkKoz-27/+16
2020-02-12Sync tests: test empty diff for identical rolesGravatar MarkKoz-8/+11
2020-02-12Sync tests: fix creation of MockRolesGravatar MarkKoz-3/+4
Role was being accessed like a class when it is actually a dict.
2020-02-12Sync tests: add fixture to create a guild with rolesGravatar MarkKoz-1/+21
2020-02-12Sync tests: rename the role syncer test caseGravatar MarkKoz-1/+1
2020-02-12Tests: add a MockAPIClientGravatar MarkKoz-0/+18
2020-02-12Sync: handle API errors gracefullyGravatar MarkKoz-10/+21
The whole sync is aborted when an error is caught for simplicity's sake. The sync message is edited to display the error and the traceback is logged. To distinguish an error from an abort/timeout, the latter now uses a warning emoji while the former uses the red cross.
2020-02-12Sync: mention core devs when results are shown & fix missing spaceGravatar MarkKoz-6/+8
2020-02-12Sync: split _confirm() into two functionsGravatar MarkKoz-10/+32
One is responsible for sending the confirmation prompt while the other waits for the reaction. The split allows for the confirmation prompt to be edited with the results of automatic syncs too.
2020-02-12Sync: keep the mention for all edits of the confirmation promptGravatar MarkKoz-4/+6
This makes it clearer to users where the notification came from.
2020-02-12Sync: add trace and debug loggingGravatar MarkKoz-1/+16
2020-02-12Sync: fix confirmation reaction checkGravatar MarkKoz-5/+10
* Ignore bot reactions * Check for core dev role if sync is automatic * Require author as an argument to _confirm() so it can be compared against the reaction author
2020-02-12Sync: remove author mention from confirm promptGravatar MarkKoz-2/+2
2020-02-12Sync: fix overwriting message with None after editing itGravatar MarkKoz-1/+1
2020-02-12Sync: fix passing context instead of message to _confirm()Gravatar MarkKoz-4/+5
* Mention possibility of timing out as a reason for aborting a sync
2020-02-12Sync: fix missing await for fetch_channelGravatar MarkKoz-1/+1
2020-02-12Sync: allow for None values in DiffsGravatar MarkKoz-4/+4
2020-02-12Sync: make Role, User, and Diff privateGravatar MarkKoz-15/+15
2020-02-12Sync: remove generic type from DiffGravatar MarkKoz-19/+10
It doesn't play along well with NamedTuple due to metaclass conflicts. The workaround involved created a NamedTuple-only base class, which does work but at the cost of confusing some static type checkers. Since Diff is now an internal data structure, it no longer really needs to have precise type annotations. Therefore, a normal namedtuple is adequate.
2020-02-12Sync: move sync logic into Syncer base classGravatar MarkKoz-93/+54
The interface was becoming cumbersome to work with so it was all moved to a single location. Now just calling Syncer.sync() will take care of everything. * Remove Optional type annotation from Diff attributes * _confirm() can edit the original message and use it as the prompt * Calculate the total diff and compare it against the max before sending a confirmation prompt * Remove abort message from sync(); _confirm() will handle that
2020-02-12Sync: prompt to confirm when diff is greater than 10Gravatar MarkKoz-37/+158
The confirmation prompt will be sent to the dev-core channel or the specified context. Confirmation is done via reactions and waits 5 minutes before timing out. * Add name property to Syncers * Make _get_diff private; only sync() needs to be called now * Change spelling of synchronize to synchronise * Update docstrings
2020-02-12Sync: create classes for syncersGravatar MarkKoz-242/+158
Replaces the functions with a class for each syncer. The classes inherit from a Syncer base class. A NamedTuple was also created to replace the tuple of the object differences that was previously being returned. * Use namedtuple._asdict to simplify converting namedtuples to JSON
2020-02-12Sync: support sending messages to a context in sync()Gravatar MarkKoz-17/+11
2020-02-12Sync: support multiple None totals returns from a syncerGravatar MarkKoz-10/+7
2020-02-12Sync: create function for running a single syncerGravatar MarkKoz-22/+24
2020-02-12Sync: refactor cogGravatar MarkKoz-25/+26
* Use ID from constants directly instead of SYNC_SERVER_ID * Use f-strings instead of %s for logging * Fit into margin of 100 * Invert condition to reduce nesting * Use Any instead of incorrect function annotation for JSON values
2020-02-12API: create request function which has a param for the HTTP methodGravatar MarkKoz-18/+10
Reduces code redundancy.
2020-02-12API: define functions with keyword-only argumentsGravatar MarkKoz-10/+10
This seems to have been the intent of the original implementation.
2020-02-12Constants: add dev-core channel and check mark emojiGravatar MarkKoz-0/+4
2020-02-12Use wait_until_guild_available instead of wait_until_readyGravatar MarkKoz-13/+13
It has a much better guarantee that the cache will be available.
2020-02-12Bot: make the connector attribute privateGravatar MarkKoz-4/+4
2020-02-12Bot: add wait_until_guild_availableGravatar MarkKoz-0/+39
This coroutine waits until the configured guild is available and ensures the cache is present. The on_ready event is inadequate because it only waits 2 seconds for a GUILD_CREATE gateway event before giving up and thus not populating the cache for unavailable guilds.
2020-02-12Fix pagniation module for "last page" reactionGravatar mosguinz-1/+1
Fixes #746.
2020-02-09Remove clear reaction from paginatorsGravatar MarkKoz-17/+2
It could be confused with the delete reaction. Clearing reactions manually is rarely a useful feature anyway.
2020-02-07Pin discord.py to 1.3.xGravatar MarkKoz-2/+2
2020-02-07Update discord.py to 1.3.1Gravatar MarkKoz-39/+34
2020-02-06Add missing slash to asking good questions url.Gravatar scragly-1/+1
2020-02-05Move tools and questions guide to under resourcesGravatar scragly-2/+2
After the wiki pages adjustment to the resources page, these two urls are needing to be updated to point to the new correct locations for each page. Tools will be under resources, and Asking Good Questions is a guide, so will be under Guides.
2020-02-05Made searching even stricter by searching from start of each wordGravatar Shirayuki Nekomata-11/+13
- Added regex back to sub and split by non-alphabet. - Now use two pointers to move from words to words.
2020-02-05Removed regex, implemented a stricter letter searching.Gravatar Shirayuki Nekomata-10/+12
2020-02-05Increased default thresholds from just [100, 80] to [100, 90, 80, 70, 60]Gravatar Shirayuki Nekomata-2/+2
- Since it is returning as soon as there are suggestions found for a threshold, this will give a better reflection of what the bot thinks user is searching for.