This PR demonstrates a proposed approach to testing torrent providers requiring authorization using animebytes as an example.
Authorization mechanism is a part of an individual provider implementation. Usually, it depends on credentials stored as attributes of a provider class. In this particular example of animebytes provider, username and passkey attributes store user-provided credentials.
When provider class is imported to the testing context, advanced configuration of the instance can performed by injecting custom attributes found in _meta.attr in the test YAML file.
To prevent credentials from getting leaked by VCR recording them in the request, VCR context configuration can be defined in _meta.vcr. In case of animebytes, credentials are supplied as username and torrent_pass query parameters, so they have to be stripped with filter_query_parameters=['username', 'torrent_pass'] param provided to use_cassette(). Reference
To sum up, this PR introduces:
post-construction initialization step for provider instance
This PR demonstrates a proposed approach to testing torrent providers requiring authorization using
animebytes
as an example.Authorization mechanism is a part of an individual provider implementation. Usually, it depends on credentials stored as attributes of a provider class. In this particular example of
animebytes
provider,username
andpasskey
attributes store user-provided credentials.When provider class is imported to the testing context, advanced configuration of the instance can performed by injecting custom attributes found in
_meta.attr
in the test YAML file.To prevent credentials from getting leaked by VCR recording them in the request, VCR context configuration can be defined in
_meta.vcr
. In case ofanimebytes
, credentials are supplied asusername
andtorrent_pass
query parameters, so they have to be stripped withfilter_query_parameters=['username', 'torrent_pass']
param provided touse_cassette()
. ReferenceTo sum up, this PR introduces: