File: conftest.py

package info (click to toggle)
prawcore 2.3.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 3,108 kB
  • sloc: python: 1,857; makefile: 6
file content (57 lines) | stat: -rw-r--r-- 2,207 bytes parent folder | download
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)