Passed
Push — main ( 3af396...a21473 )
by Jochen
07:43
created

test_example_placed_order_message_text()   A

Complexity

Conditions 2

Size

Total Lines 101
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 23
nop 7
dl 0
loc 101
rs 9.328
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
"""
2
:Copyright: 2006-2021 Jochen Kupperschmidt
3
:License: Revised BSD (see `LICENSE` file for details)
4
"""
5
6
import pytest
7
8
from byceps.services.shop.order.email import example_service
9
10
from tests.helpers import current_user_set
11
12
from .helpers import get_current_user_for_user
13
14
15
@pytest.mark.parametrize(
16
    'locale, expected',
17
    [
18
        (
19
            'de',
20
            '''\
21
From: NameAndAddress(name=None, address='[email protected]')
22
To: ['[email protected]']
23
Subject: Deine Bestellung (AWSM-ORDR-9247) ist eingegangen.
24
25
26
Hallo Orderer,
27
28
vielen Dank für deine Bestellung mit der Nummer AWSM-ORDR-9247 am 12.10.2021 über unsere Website.
29
30
Folgende Artikel hast du bestellt:
31
32
  Gesamtbetrag: 42,95 €
33
34
Bitte überweise den Gesamtbetrag auf folgendes Konto:
35
36
  Zahlungsempfänger: <Name>
37
  IBAN: <IBAN>
38
  BIC: <BIC>
39
  Bank: <Kreditinstitut>
40
  Verwendungszweck: AWSM-ORDR-9247
41
42
Wir werden dich informieren, sobald wir deine Zahlung erhalten haben.
43
44
Hier kannst du deine Bestellungen einsehen: https://www.acmecon.test/shop/orders
45
46
Für Fragen stehen wir gerne zur Verfügung.
47
48
Viele Grüße,
49
das Team der Acme Entertainment Convention
50
51
-- 
52
Acme Entertainment Convention
53
54
E-Mail: [email protected]
55
''',
56
        ),
57
        (
58
            'en',
59
            '''\
60
From: NameAndAddress(name=None, address='[email protected]')
61
To: ['[email protected]']
62
Subject: Your order (AWSM-ORDR-9247) has been received.
63
64
65
Hello Orderer,
66
67
thank you for your order AWSM-ORDR-9247 on 12.10.2021 through our website.
68
69
You have ordered these items:
70
71
  Total amount: 42,95 €
72
73
Bitte überweise den Gesamtbetrag auf folgendes Konto:
74
75
  Zahlungsempfänger: <Name>
76
  IBAN: <IBAN>
77
  BIC: <BIC>
78
  Bank: <Kreditinstitut>
79
  Verwendungszweck: AWSM-ORDR-9247
80
81
Wir werden dich informieren, sobald wir deine Zahlung erhalten haben.
82
83
Hier kannst du deine Bestellungen einsehen: https://www.acmecon.test/shop/orders
84
85
Für Fragen stehen wir gerne zur Verfügung.
86
87
Viele Grüße,
88
das Team der Acme Entertainment Convention
89
90
-- 
91
Acme Entertainment Convention
92
93
E-Mail: [email protected]
94
''',
95
        ),
96
    ],
97
)
98
def test_example_placed_order_message_text(
99
    admin_app,
100
    order_admin,
101
    shop,
102
    email_payment_instructions_snippet_id,
103
    email_footer_snippet_id,
104
    locale,
105
    expected,
106
):
107
    app = admin_app
108
    current_user = get_current_user_for_user(order_admin)
109
110
    with current_user_set(app, current_user), app.app_context():
111
        actual = example_service.build_example_placed_order_message_text(
112
            shop.id, locale
113
        )
114
115
    assert actual == expected
116
117
118
@pytest.mark.parametrize(
119
    'locale, expected',
120
    [
121
        (
122
            'de',
123
            '''\
124
From: NameAndAddress(name=None, address='[email protected]')
125
To: ['[email protected]']
126
Subject: ✅ Deine Bestellung (AWSM-ORDR-9247) ist bezahlt worden.
127
128
129
Hallo Orderer,
130
131
vielen Dank für deine Bestellung mit der Nummer AWSM-ORDR-9247 am 12.10.2021 über unsere Website.
132
133
Wir haben deine Zahlung erhalten und deine Bestellung als bezahlt markiert.
134
135
Für Fragen stehen wir gerne zur Verfügung.
136
137
Viele Grüße,
138
das Team der Acme Entertainment Convention
139
140
-- 
141
Acme Entertainment Convention
142
143
E-Mail: [email protected]
144
''',
145
        ),
146
        (
147
            'en',
148
            '''\
149
From: NameAndAddress(name=None, address='[email protected]')
150
To: ['[email protected]']
151
Subject: ✅ Your order (AWSM-ORDR-9247) has been paid.
152
153
154
Hello Orderer,
155
156
thank you for your order AWSM-ORDR-9247 on 12.10.2021 through our website.
157
158
We have received your payment and have marked your order as paid.
159
160
Für Fragen stehen wir gerne zur Verfügung.
161
162
Viele Grüße,
163
das Team der Acme Entertainment Convention
164
165
-- 
166
Acme Entertainment Convention
167
168
E-Mail: [email protected]
169
''',
170
        ),
171
    ],
172
)
173
def test_example_paid_order_message_text(
174
    admin_app,
175
    order_admin,
176
    shop,
177
    email_payment_instructions_snippet_id,
178
    email_footer_snippet_id,
179
    locale,
180
    expected,
181
):
182
    app = admin_app
183
    current_user = get_current_user_for_user(order_admin)
184
185
    with current_user_set(app, current_user), app.app_context():
186
        actual = example_service.build_example_paid_order_message_text(
187
            shop.id, locale
188
        )
189
190
    assert actual == expected
191
192
193
@pytest.mark.parametrize(
194
    'locale, expected',
195
    [
196
        (
197
            'de',
198
            '''\
199
From: NameAndAddress(name=None, address='[email protected]')
200
To: ['[email protected]']
201
Subject: ❌ Deine Bestellung (AWSM-ORDR-9247) ist storniert worden.
202
203
204
Hallo Orderer,
205
206
deine Bestellung mit der Nummer AWSM-ORDR-9247 vom 12.10.2021 wurde von uns aus folgendem Grund storniert:
207
208
Kein fristgerechter Geldeingang feststellbar.
209
210
Für Fragen stehen wir gerne zur Verfügung.
211
212
Viele Grüße,
213
das Team der Acme Entertainment Convention
214
215
-- 
216
Acme Entertainment Convention
217
218
E-Mail: [email protected]
219
''',
220
        ),
221
        (
222
            'en',
223
            '''\
224
From: NameAndAddress(name=None, address='[email protected]')
225
To: ['[email protected]']
226
Subject: ❌ Your order (AWSM-ORDR-9247) has been canceled.
227
228
229
Hello Orderer,
230
231
your order AWSM-ORDR-9247 on 12.10.2021 has been canceled by us for this reason:
232
233
Kein fristgerechter Geldeingang feststellbar.
234
235
Für Fragen stehen wir gerne zur Verfügung.
236
237
Viele Grüße,
238
das Team der Acme Entertainment Convention
239
240
-- 
241
Acme Entertainment Convention
242
243
E-Mail: [email protected]
244
''',
245
        ),
246
    ],
247
)
248
def test_example_canceled_order_message_text(
249
    admin_app,
250
    order_admin,
251
    shop,
252
    email_payment_instructions_snippet_id,
253
    email_footer_snippet_id,
254
    locale,
255
    expected,
256
):
257
    app = admin_app
258
    current_user = get_current_user_for_user(order_admin)
259
260
    with current_user_set(app, current_user), app.app_context():
261
        actual = example_service.build_example_canceled_order_message_text(
262
            shop.id, locale
263
        )
264
265
    assert actual == expected
266