Conversation
Start working on ClientHybrid class. Denotes a type of client that calls both the sync and async versions of a client's fetch_x methods. This is so that, when testing, you don't need two tests for each client type. The guarantee is that the return types between the two clients are the same, so the subsequent tests must also be valid for both of them. This is backed up by a `HybridMethodProxy` class which basically acts as the actual caller returned by the ClientHyrbid to do some validation.
…_fetch_shop to use correct test functions
…tions for known types.
…alidation functions. Kept them as `_` to denote how they are not exported.
…his for every API call.
Luc1412
commented
Dec 22, 2024
Co-authored-by: Lucas Hardt <Luc1412.lh@gmail.com>
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Async/Sync Tests Rewrite
Currently, the tests for both the async and sync clients have separate files, and thus, have a lot of repeated code.
I aim to merge this into one, ensuring that both clients are functioning as expected and strengthening the safety of all available tests.
Overall Idea
I'm planning to create some sort of mock Client/SyncClient hybrid that calls methods from both clients at once when requested. Pytest tests do not run in parallel, so although this is not the best solution it will ensure the following:
This will effectively merge the two independent test files into one, allowing for easier maintainability and readability.
This PR stems from the ongoing #29 PR to migrate all new features to this new test system.
Misc Changes
abc.ReconstructAbleto fix changes withfrom_dictclassmethod typing annotations.attribute_table.py,examples/discord_integration.py,abc.py,aes.py,asset.py,banner.py,client.py,cosmetics/*.py,cosmetics/variants/*.py,errors.py,http.py,images.py,map.py,new.py,new_display_asset.py,news.py,playlist.py,proxies.py,shop.py, andstats.py.synchronizeworkflow trigger in thepull_requestcategory. This caused tests to run twice in an active PR. Now, tests run when pushed to a branch, when a PR is opened, or when a PR is reopened.