File: test_exports.py

package info (click to toggle)
python-stripe 13.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,476 kB
  • sloc: python: 187,843; makefile: 13; sh: 9
file content (173 lines) | stat: -rw-r--r-- 6,460 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# pyright: strict
# we specifically test various import patterns
import stripe
import subprocess
import sys


def assert_output(code: str, expected: str) -> None:
    process = subprocess.Popen(
        [sys.executable, "-c", f"import stripe; print({code})"],
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
    )

    stdout, stderr = process.communicate()

    assert not stderr, f"Error: {stderr.decode()}"

    output = stdout.decode().strip()
    # assert the output
    assert output == expected


def test_can_import_request_options() -> None:
    from stripe import RequestOptions  # pyright: ignore[reportUnusedImport]


def test_can_import_http_client() -> None:
    from stripe import (
        HTTPClient,  # pyright: ignore[reportUnusedImport]
        PycurlClient,  # pyright: ignore[reportUnusedImport]
        RequestsClient,  # pyright: ignore[reportUnusedImport]
        UrlFetchClient,  # pyright: ignore[reportUnusedImport]
        new_default_http_client,  # pyright: ignore[reportUnusedImport]
    )


def test_can_import_webhook_members() -> None:
    from stripe import (
        Webhook,  # pyright: ignore[reportUnusedImport]
        WebhookSignature,  # pyright: ignore[reportUnusedImport]
    )


def test_can_import_abstract() -> None:
    from stripe import (
        APIResource,  # pyright: ignore[reportUnusedImport]
        SingletonAPIResource,  # pyright: ignore[reportUnusedImport]
        CreateableAPIResource,  # pyright: ignore[reportUnusedImport]
        UpdateableAPIResource,  # pyright: ignore[reportUnusedImport]
        DeletableAPIResource,  # pyright: ignore[reportUnusedImport]
        ListableAPIResource,  # pyright: ignore[reportUnusedImport]
        SearchableAPIResource,  # pyright: ignore[reportUnusedImport]
        VerifyMixin,  # pyright: ignore[reportUnusedImport]
        APIResourceTestHelpers,  # pyright: ignore[reportUnusedImport]
        custom_method,  # pyright: ignore[reportDeprecated, reportUnusedImport]
        nested_resource_class_methods,  # pyright: ignore[reportUnusedImport]
    )


def test_can_import_infrastructure() -> None:
    from stripe import (
        StripeContext,  # pyright: ignore[reportUnusedImport]
        StripeObject,  # pyright: ignore[reportUnusedImport]
        ListObject,  # pyright: ignore[reportUnusedImport]
        BaseAddress,  # pyright: ignore[reportUnusedImport]
    )
    from stripe.v2 import DeletedObject  # pyright: ignore[reportUnusedImport]


def test_can_import_app_info() -> None:
    from stripe import AppInfo  # pyright: ignore[reportUnusedImport]


def test_can_import_stripe_response() -> None:
    from stripe import (
        StripeResponse,  # pyright: ignore[reportUnusedImport]
        StripeResponseBase,  # pyright: ignore[reportUnusedImport]
        StripeStreamResponse,  # pyright: ignore[reportUnusedImport]
        StripeStreamResponseAsync,  # pyright: ignore[reportUnusedImport]
    )


def test_can_import_oauth_members() -> None:
    from stripe import OAuth

    assert OAuth is not None


def test_can_import_util() -> None:
    from stripe import convert_to_stripe_object  # pyright: ignore[reportUnusedImport]


def test_can_import_errors() -> None:
    # fmt: off
    from stripe import StripeError  # pyright: ignore[reportUnusedImport]
    from stripe import APIError  # pyright: ignore[reportUnusedImport]
    from stripe import OAuthErrorObject  # pyright: ignore[reportUnusedImport]
    from stripe import APIConnectionError  # pyright: ignore[reportUnusedImport]
    from stripe import StripeErrorWithParamCode  # pyright: ignore[reportUnusedImport]
    from stripe import CardError  # pyright: ignore[reportUnusedImport]
    from stripe import IdempotencyError  # pyright: ignore[reportUnusedImport]
    from stripe import InvalidRequestError  # pyright: ignore[reportUnusedImport]
    from stripe import AuthenticationError  # pyright: ignore[reportUnusedImport]
    from stripe import PermissionError  # pyright: ignore[reportUnusedImport]
    from stripe import RateLimitError  # pyright: ignore[reportUnusedImport]
    from stripe import SignatureVerificationError  # pyright: ignore[reportUnusedImport]
    # fmt: on


def test_can_import_namespaced_resource() -> None:
    from stripe import tax as TaxPackage
    from stripe.tax import (
        Calculation as CalculationFromStripe,
    )

    assert stripe.tax is TaxPackage
    assert stripe.tax.Calculation is CalculationFromStripe
    assert stripe.tax.Calculation is TaxPackage.Calculation

    assert_output("stripe.tax is not None", "True")
    assert_output("stripe.tax.Calculation is not None", "True")


def test_can_import_top_level_service() -> None:
    from stripe import AccountService as AccountServiceFromStripe

    assert stripe.AccountService == AccountServiceFromStripe

    assert_output("stripe.AccountService is not None", "True")


def test_can_import_namespaced_service() -> None:
    from stripe import tax as TaxPackage
    from stripe.tax import (
        CalculationService as CalculationServiceFromStripe,
    )

    assert stripe.tax is TaxPackage
    assert stripe.tax.CalculationService is CalculationServiceFromStripe
    assert stripe.tax.CalculationService is TaxPackage.CalculationService

    assert_output("stripe.tax is not None", "True")
    assert_output("stripe.tax.CalculationService is not None", "True")


def test_can_import_deeply_namespaced_service() -> None:
    from stripe import v2 as V2Package
    from stripe.v2 import billing as BillingPackage
    from stripe.v2.billing import (
        MeterEventService as MeterEventServiceFromStripe,
    )
    from stripe.v2.billing._meter_event_service import (
        MeterEventService as MeterEventServiceFromModule,
    )

    assert stripe.v2 is V2Package
    assert stripe.v2.billing is BillingPackage
    assert stripe.v2.billing.MeterEventService is MeterEventServiceFromStripe
    assert stripe.v2.billing.MeterEventService is MeterEventServiceFromModule

    assert_output("stripe.v2.billing.MeterEventService is not None", "True")
    assert_output("stripe.v2.billing.MeterEventService is not None", "True")


def test_can_import_nested_params_types() -> None:
    from stripe.params.checkout import (
        SessionCreateParamsLineItem,
    )
    from stripe.params import AccountSessionCreateParamsComponents

    assert SessionCreateParamsLineItem is not None
    assert AccountSessionCreateParamsComponents is not None