1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
"""Constants for the prawcore test suite."""
import os
from base64 import b64encode
from betamax import Betamax
from betamax_matchers.json_body import JSONBodyMatcher
from betamax_serializers import pretty_json
from prawcore import Requestor
CLIENT_ID = os.environ.get("PRAWCORE_CLIENT_ID", "fake_client_id")
CLIENT_SECRET = os.environ.get("PRAWCORE_CLIENT_SECRET", "fake_client_secret")
PASSWORD = os.environ.get("PRAWCORE_PASSWORD", "fake_password")
PERMANENT_GRANT_CODE = os.environ.get(
"PRAWCORE_PERMANENT_GRANT_CODE", "fake_perm_code"
)
REDIRECT_URI = os.environ.get("PRAWCORE_REDIRECT_URI", "http://localhost:8080")
REFRESH_TOKEN = os.environ.get("PRAWCORE_REFRESH_TOKEN", "fake_refresh_token")
TEMPORARY_GRANT_CODE = os.environ.get(
"PRAWCORE_TEMPORARY_GRANT_CODE", "fake_temp_code"
)
USERNAME = os.environ.get("PRAWCORE_USERNAME", "fake_username")
REQUESTOR = Requestor("prawcore:test (by /u/bboe)")
def b64_string(input_string):
"""Return a base64 encoded string (not bytes) from input_string."""
return b64encode(input_string.encode("utf-8")).decode("utf-8")
def two_factor_callback():
"""Return an OTP code."""
return None
Betamax.register_request_matcher(JSONBodyMatcher)
Betamax.register_serializer(pretty_json.PrettyJSONSerializer)
with Betamax.configure() as config:
if os.getenv("TRAVIS"):
config.default_cassette_options["record_mode"] = "none"
config.cassette_library_dir = "tests/cassettes"
config.default_cassette_options["serialize_with"] = "prettyjson"
config.default_cassette_options["match_requests_on"].append("body")
config.define_cassette_placeholder(
"<BASIC_AUTH>", b64_string(f"{CLIENT_ID}:{CLIENT_SECRET}")
)
config.define_cassette_placeholder("<CLIENT_ID>", CLIENT_ID)
config.define_cassette_placeholder("<CLIENT_SECRET>", CLIENT_SECRET)
config.define_cassette_placeholder("<PASSWORD>", PASSWORD)
config.define_cassette_placeholder("<PERM_CODE>", PERMANENT_GRANT_CODE)
config.define_cassette_placeholder("<REFRESH_TOKEN>", REFRESH_TOKEN)
config.define_cassette_placeholder("<TEMP_CODE>", TEMPORARY_GRANT_CODE)
config.define_cassette_placeholder("<USERNAME>", USERNAME)
|