Merge lp:~cjwatson/launchpad/test-domain-prep into lp:launchpad
- test-domain-prep
- Merge into devel
Proposed by
Colin Watson
Status: | Merged |
---|---|
Merged at revision: | 18966 |
Proposed branch: | lp:~cjwatson/launchpad/test-domain-prep |
Merge into: | lp:launchpad |
Diff against target: |
300 lines (+41/-47) 5 files modified
lib/lp/code/stories/branches/xx-branch-edit.txt (+7/-6) lib/lp/soyuz/doc/build-failedtoupload-workflow.txt (+3/-5) lib/lp/testing/mail_helpers.py (+5/-3) lib/lp/translations/doc/poexport-queue.txt (+23/-29) lib/lp/translations/doc/poexport-request.txt (+3/-4) |
To merge this branch: | bzr merge lp:~cjwatson/launchpad/test-domain-prep |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Tom Wardill (community) | Approve | ||
Launchpad code reviewers | Pending | ||
Review via email: mp+367451@code.launchpad.net |
Commit message
Prepare some doctests for change to launchpad.test domain.
Description of the change
Some doctests were sensitive to the exact length of URLs, which will change shortly when we rename from launchpad.dev to launchpad.test.
To post a comment you must log in.
Revision history for this message
Tom Wardill (twom) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'lib/lp/code/stories/branches/xx-branch-edit.txt' | |||
2 | --- lib/lp/code/stories/branches/xx-branch-edit.txt 2018-05-13 10:35:52 +0000 | |||
3 | +++ lib/lp/code/stories/branches/xx-branch-edit.txt 2019-05-15 08:02:45 +0000 | |||
4 | @@ -276,11 +276,11 @@ | |||
5 | 276 | >>> len(stub.test_emails) | 276 | >>> len(stub.test_emails) |
6 | 277 | 1 | 277 | 1 |
7 | 278 | 278 | ||
11 | 279 | >>> print(stub.test_emails[0][2]) | 279 | >>> from lp.testing.mail_helpers import print_emails |
12 | 280 | Content-Type: ... | 280 | |
13 | 281 | ... | 281 | >>> print_emails(decode=True) |
14 | 282 | From: No Privileges Person <no-priv@canonical.com> | ||
15 | 282 | To: Sample Person <test@canonical.com> | 283 | To: Sample Person <test@canonical.com> |
16 | 283 | From: No Privileges Person <no-priv@canonical.com> | ||
17 | 284 | Subject: [Branch ~name12/foogoo/foogoo-svn] | 284 | Subject: [Branch ~name12/foogoo/foogoo-svn] |
18 | 285 | ... | 285 | ... |
19 | 286 | New whiteboard value | 286 | New whiteboard value |
20 | @@ -290,9 +290,10 @@ | |||
21 | 290 | http://code.launchpad.dev/~name12/foogoo/foogoo-svn | 290 | http://code.launchpad.dev/~name12/foogoo/foogoo-svn |
22 | 291 | <BLANKLINE> | 291 | <BLANKLINE> |
23 | 292 | You are subscribed to branch lp://dev/~name12/foogoo/foogoo-svn. | 292 | You are subscribed to branch lp://dev/~name12/foogoo/foogoo-svn. |
26 | 293 | To unsubscribe from this branch go to http://code.l.../~name12/foo= | 293 | To unsubscribe from this branch go to |
27 | 294 | goo/foogoo-svn/+edit-subscription | 294 | http://code.l.../~name12/foogoo/foogoo-svn/+edit-subscription |
28 | 295 | <BLANKLINE> | 295 | <BLANKLINE> |
29 | 296 | ---------------------------------------- | ||
30 | 296 | 297 | ||
31 | 297 | 298 | ||
32 | 298 | Changing the branch owner | 299 | Changing the branch owner |
33 | 299 | 300 | ||
34 | === modified file 'lib/lp/soyuz/doc/build-failedtoupload-workflow.txt' | |||
35 | --- lib/lp/soyuz/doc/build-failedtoupload-workflow.txt 2019-01-05 09:21:54 +0000 | |||
36 | +++ lib/lp/soyuz/doc/build-failedtoupload-workflow.txt 2019-05-15 08:02:45 +0000 | |||
37 | @@ -78,7 +78,7 @@ | |||
38 | 78 | >>> build_notification['X-Creator-Recipient'] | 78 | >>> build_notification['X-Creator-Recipient'] |
39 | 79 | 'mark@example.com' | 79 | 'mark@example.com' |
40 | 80 | 80 | ||
42 | 81 | >>> notification_body = build_notification.get_payload() | 81 | >>> notification_body = build_notification.get_payload(decode=True) |
43 | 82 | >>> print(notification_body) #doctest: -NORMALIZE_WHITESPACE | 82 | >>> print(notification_body) #doctest: -NORMALIZE_WHITESPACE |
44 | 83 | <BLANKLINE> | 83 | <BLANKLINE> |
45 | 84 | * Source Package: cdrkit | 84 | * Source Package: cdrkit |
46 | @@ -88,8 +88,7 @@ | |||
47 | 88 | * Component: main | 88 | * Component: main |
48 | 89 | * State: Failed to upload | 89 | * State: Failed to upload |
49 | 90 | * Duration: 1 minute | 90 | * Duration: 1 minute |
52 | 91 | * Build Log: http://launchpad.dev/ubuntu/+source/cdrkit/1.0/+build/22/+fil= | 91 | * Build Log: http://launchpad.dev/ubuntu/+source/cdrkit/1.0/+build/22/+files/netapplet-1.0.0.tar.gz |
51 | 92 | es/netapplet-1.0.0.tar.gz | ||
53 | 93 | * Builder: http://launchpad.dev/builders/bob | 92 | * Builder: http://launchpad.dev/builders/bob |
54 | 94 | * Source: http://launchpad.dev/ubuntu/+source/cdrkit/1.0 | 93 | * Source: http://launchpad.dev/ubuntu/+source/cdrkit/1.0 |
55 | 95 | <BLANKLINE> | 94 | <BLANKLINE> |
56 | @@ -100,8 +99,7 @@ | |||
57 | 100 | contact us by asking a question on Launchpad | 99 | contact us by asking a question on Launchpad |
58 | 101 | (https://answers.launchpad.net/launchpad/+addquestion). | 100 | (https://answers.launchpad.net/launchpad/+addquestion). |
59 | 102 | <BLANKLINE> | 101 | <BLANKLINE> |
62 | 103 | -- = | 102 | -- |
61 | 104 | <BLANKLINE> | ||
63 | 105 | i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE | 103 | i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE |
64 | 106 | http://launchpad.dev/ubuntu/+source/cdrkit/1.0/+build/22 | 104 | http://launchpad.dev/ubuntu/+source/cdrkit/1.0/+build/22 |
65 | 107 | <BLANKLINE> | 105 | <BLANKLINE> |
66 | 108 | 106 | ||
67 | === modified file 'lib/lp/testing/mail_helpers.py' | |||
68 | --- lib/lp/testing/mail_helpers.py 2015-09-14 14:12:58 +0000 | |||
69 | +++ lib/lp/testing/mail_helpers.py 2019-05-15 08:02:45 +0000 | |||
70 | @@ -1,4 +1,4 @@ | |||
72 | 1 | # Copyright 2009-2015 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2019 Canonical Ltd. This software is licensed under the |
73 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
74 | 3 | 3 | ||
75 | 4 | """Helper functions dealing with emails in tests. | 4 | """Helper functions dealing with emails in tests. |
76 | @@ -60,7 +60,8 @@ | |||
77 | 60 | 60 | ||
78 | 61 | def print_emails(include_reply_to=False, group_similar=False, | 61 | def print_emails(include_reply_to=False, group_similar=False, |
79 | 62 | include_rationale=False, include_for=False, | 62 | include_rationale=False, include_for=False, |
81 | 63 | notifications=None, include_notification_type=False): | 63 | notifications=None, include_notification_type=False, |
82 | 64 | decode=False): | ||
83 | 64 | """Pop all messages from stub.test_emails and print them with | 65 | """Pop all messages from stub.test_emails and print them with |
84 | 65 | their recipients. | 66 | their recipients. |
85 | 66 | 67 | ||
86 | @@ -80,6 +81,7 @@ | |||
87 | 80 | the stack. | 81 | the stack. |
88 | 81 | :param include_notification_type: Include the | 82 | :param include_notification_type: Include the |
89 | 82 | X-Launchpad-Notification-Type header. | 83 | X-Launchpad-Notification-Type header. |
90 | 84 | :param decode: Decode message payloads if True. | ||
91 | 83 | """ | 85 | """ |
92 | 84 | distinct_bodies = {} | 86 | distinct_bodies = {} |
93 | 85 | if notifications is None: | 87 | if notifications is None: |
94 | @@ -88,7 +90,7 @@ | |||
95 | 88 | recipients = set( | 90 | recipients = set( |
96 | 89 | recipient.strip() | 91 | recipient.strip() |
97 | 90 | for recipient in message['To'].split(',')) | 92 | for recipient in message['To'].split(',')) |
99 | 91 | body = message.get_payload() | 93 | body = message.get_payload(decode=decode) |
100 | 92 | if group_similar: | 94 | if group_similar: |
101 | 93 | # Strip the first line as it's different for each recipient. | 95 | # Strip the first line as it's different for each recipient. |
102 | 94 | body = body[body.find('\n') + 1:] | 96 | body = body[body.find('\n') + 1:] |
103 | 95 | 97 | ||
104 | === modified file 'lib/lp/translations/doc/poexport-queue.txt' | |||
105 | --- lib/lp/translations/doc/poexport-queue.txt 2018-06-02 13:37:18 +0000 | |||
106 | +++ lib/lp/translations/doc/poexport-queue.txt 2019-05-15 08:02:45 +0000 | |||
107 | @@ -74,12 +74,12 @@ | |||
108 | 74 | 74 | ||
109 | 75 | One is for the user with the error notification. | 75 | One is for the user with the error notification. |
110 | 76 | 76 | ||
112 | 77 | >>> print_emails(notifications=[carlos_email]) | 77 | >>> print_emails(notifications=[carlos_email], decode=True) |
113 | 78 | From: ... | 78 | From: ... |
114 | 79 | To: carlos@canonical.com | 79 | To: carlos@canonical.com |
115 | 80 | Subject: Launchpad translation download: Evolution trunk - | 80 | Subject: Launchpad translation download: Evolution trunk - |
116 | 81 | evolution-2.2 template | 81 | evolution-2.2 template |
118 | 82 | Hello Carlos Perell=C3=B3 Mar=C3=ADn, | 82 | Hello Carlos Perelló Marín, |
119 | 83 | <BLANKLINE> | 83 | <BLANKLINE> |
120 | 84 | Launchpad encountered problems exporting the files you requested. | 84 | Launchpad encountered problems exporting the files you requested. |
121 | 85 | The Launchpad Translations team has been notified of this problem. | 85 | The Launchpad Translations team has been notified of this problem. |
122 | @@ -87,10 +87,9 @@ | |||
123 | 87 | <BLANKLINE> | 87 | <BLANKLINE> |
124 | 88 | If you want to retry your request, you can do so at | 88 | If you want to retry your request, you can do so at |
125 | 89 | <BLANKLINE> | 89 | <BLANKLINE> |
128 | 90 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+ex= | 90 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+export. |
127 | 91 | port. | ||
129 | 92 | <BLANKLINE> | 91 | <BLANKLINE> |
131 | 93 | -- = | 92 | -- |
132 | 94 | Automatic message from Launchpad.net. | 93 | Automatic message from Launchpad.net. |
133 | 95 | <BLANKLINE> | 94 | <BLANKLINE> |
134 | 96 | ---------------------------------------- | 95 | ---------------------------------------- |
135 | @@ -98,7 +97,7 @@ | |||
136 | 98 | And the other to the admins. This one lists the files that were being | 97 | And the other to the admins. This one lists the files that were being |
137 | 99 | exported as context to help tracking down any bugs. | 98 | exported as context to help tracking down any bugs. |
138 | 100 | 99 | ||
140 | 101 | >>> print_emails(notifications=[admin_email]) | 100 | >>> print_emails(notifications=[admin_email], decode=True) |
141 | 102 | From: ... | 101 | From: ... |
142 | 103 | To: launchpad-error-reports@lists.canonical.com | 102 | To: launchpad-error-reports@lists.canonical.com |
143 | 104 | Subject: Launchpad translation download errors: Evolution trunk - | 103 | Subject: Launchpad translation download errors: Evolution trunk - |
144 | @@ -106,10 +105,9 @@ | |||
145 | 106 | Hello Launchpad administrators, | 105 | Hello Launchpad administrators, |
146 | 107 | <BLANKLINE> | 106 | <BLANKLINE> |
147 | 108 | Launchpad encountered problems exporting translation files | 107 | Launchpad encountered problems exporting translation files |
149 | 109 | requested by Carlos Perell=C3=B3 Mar=C3=ADn (carlos) at | 108 | requested by Carlos Perelló Marín (carlos) at |
150 | 110 | <BLANKLINE> | 109 | <BLANKLINE> |
153 | 111 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+ex= | 110 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+export |
152 | 112 | port | ||
154 | 113 | <BLANKLINE> | 111 | <BLANKLINE> |
155 | 114 | This means we have a bug in Launchpad that needs to be fixed | 112 | This means we have a bug in Launchpad that needs to be fixed |
156 | 115 | before this export can proceed. Here is the error we got: | 113 | before this export can proceed. Here is the error we got: |
157 | @@ -123,7 +121,7 @@ | |||
158 | 123 | * evolution-2.2 in Evolution trunk | 121 | * evolution-2.2 in Evolution trunk |
159 | 124 | * Spanish (es) translation of evolution-2.2 in Evolution trunk | 122 | * Spanish (es) translation of evolution-2.2 in Evolution trunk |
160 | 125 | <BLANKLINE> | 123 | <BLANKLINE> |
162 | 126 | -- = | 124 | -- |
163 | 127 | Automatic message from Launchpad.net. | 125 | Automatic message from Launchpad.net. |
164 | 128 | <BLANKLINE> | 126 | <BLANKLINE> |
165 | 129 | ---------------------------------------- | 127 | ---------------------------------------- |
166 | @@ -153,12 +151,12 @@ | |||
167 | 153 | The user's notification looks no different from that for an ordinary | 151 | The user's notification looks no different from that for an ordinary |
168 | 154 | error. | 152 | error. |
169 | 155 | 153 | ||
171 | 156 | >>> print_emails(notifications=[carlos_email]) | 154 | >>> print_emails(notifications=[carlos_email], decode=True) |
172 | 157 | From: ... | 155 | From: ... |
173 | 158 | To: carlos@canonical.com | 156 | To: carlos@canonical.com |
174 | 159 | Subject: Launchpad translation download: Evolution trunk - | 157 | Subject: Launchpad translation download: Evolution trunk - |
175 | 160 | evolution-2.2 template | 158 | evolution-2.2 template |
177 | 161 | Hello Carlos Perell=C3=B3 Mar=C3=ADn, | 159 | Hello Carlos Perelló Marín, |
178 | 162 | <BLANKLINE> | 160 | <BLANKLINE> |
179 | 163 | Launchpad encountered problems exporting the files you requested. | 161 | Launchpad encountered problems exporting the files you requested. |
180 | 164 | The Launchpad Translations team has been notified of this problem. | 162 | The Launchpad Translations team has been notified of this problem. |
181 | @@ -166,10 +164,9 @@ | |||
182 | 166 | <BLANKLINE> | 164 | <BLANKLINE> |
183 | 167 | If you want to retry your request, you can do so at | 165 | If you want to retry your request, you can do so at |
184 | 168 | <BLANKLINE> | 166 | <BLANKLINE> |
187 | 169 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+ex= | 167 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+export. |
186 | 170 | port. | ||
188 | 171 | <BLANKLINE> | 168 | <BLANKLINE> |
190 | 172 | -- = | 169 | -- |
191 | 173 | Automatic message from Launchpad.net. | 170 | Automatic message from Launchpad.net. |
192 | 174 | <BLANKLINE> | 171 | <BLANKLINE> |
193 | 175 | ---------------------------------------- | 172 | ---------------------------------------- |
194 | @@ -177,7 +174,7 @@ | |||
195 | 177 | The one for the administrators, however, does not include the | 174 | The one for the administrators, however, does not include the |
196 | 178 | unprintable exception text. | 175 | unprintable exception text. |
197 | 179 | 176 | ||
199 | 180 | >>> print_emails(notifications=[admin_email]) | 177 | >>> print_emails(notifications=[admin_email], decode=True) |
200 | 181 | From: ... | 178 | From: ... |
201 | 182 | To: launchpad-error-reports@lists.canonical.com | 179 | To: launchpad-error-reports@lists.canonical.com |
202 | 183 | Subject: Launchpad translation download errors: Evolution trunk - | 180 | Subject: Launchpad translation download errors: Evolution trunk - |
203 | @@ -188,14 +185,13 @@ | |||
204 | 188 | failure during a translation export requested by Carlos ... | 185 | failure during a translation export requested by Carlos ... |
205 | 189 | (carlos) at | 186 | (carlos) at |
206 | 190 | <BLANKLINE> | 187 | <BLANKLINE> |
209 | 191 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+ex= | 188 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+export |
208 | 192 | port | ||
210 | 193 | <BLANKLINE> | 189 | <BLANKLINE> |
211 | 194 | Failed export request included: | 190 | Failed export request included: |
212 | 195 | * evolution-2.2 in Evolution trunk | 191 | * evolution-2.2 in Evolution trunk |
213 | 196 | * Spanish (es) translation of evolution-2.2 in Evolution trunk | 192 | * Spanish (es) translation of evolution-2.2 in Evolution trunk |
214 | 197 | <BLANKLINE> | 193 | <BLANKLINE> |
216 | 198 | -- = | 194 | -- |
217 | 199 | Automatic message from Launchpad.net. | 195 | Automatic message from Launchpad.net. |
218 | 200 | <BLANKLINE> | 196 | <BLANKLINE> |
219 | 201 | ---------------------------------------- | 197 | ---------------------------------------- |
220 | @@ -224,12 +220,12 @@ | |||
221 | 224 | >>> len(test_emails) | 220 | >>> len(test_emails) |
222 | 225 | 1 | 221 | 1 |
223 | 226 | 222 | ||
225 | 227 | >>> print_emails(notifications=test_emails) | 223 | >>> print_emails(notifications=test_emails, decode=True) |
226 | 228 | From: ... | 224 | From: ... |
227 | 229 | To: carlos@canonical.com | 225 | To: carlos@canonical.com |
228 | 230 | Subject: Launchpad translation download: Evolution trunk - | 226 | Subject: Launchpad translation download: Evolution trunk - |
229 | 231 | evolution-2.2 template | 227 | evolution-2.2 template |
231 | 232 | Hello Carlos Perell=C3=B3 Mar=C3=ADn, | 228 | Hello Carlos Perelló Marín, |
232 | 233 | <BLANKLINE> | 229 | <BLANKLINE> |
233 | 234 | The translation files you requested from Launchpad are ready for | 230 | The translation files you requested from Launchpad are ready for |
234 | 235 | download from the following location: | 231 | download from the following location: |
235 | @@ -240,10 +236,9 @@ | |||
236 | 240 | download these translations again, you will have to request | 236 | download these translations again, you will have to request |
237 | 241 | them again at | 237 | them again at |
238 | 242 | <BLANKLINE> | 238 | <BLANKLINE> |
241 | 243 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+ex= | 239 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+export |
240 | 244 | port | ||
242 | 245 | <BLANKLINE> | 240 | <BLANKLINE> |
244 | 246 | -- = | 241 | -- |
245 | 247 | Automatic message from Launchpad.net. | 242 | Automatic message from Launchpad.net. |
246 | 248 | <BLANKLINE> | 243 | <BLANKLINE> |
247 | 249 | ---------------------------------------- | 244 | ---------------------------------------- |
248 | @@ -294,12 +289,12 @@ | |||
249 | 294 | 289 | ||
250 | 295 | The confirmation email shows no errors at all. | 290 | The confirmation email shows no errors at all. |
251 | 296 | 291 | ||
253 | 297 | >>> print_emails(notifications=test_emails) | 292 | >>> print_emails(notifications=test_emails, decode=True) |
254 | 298 | From: ... | 293 | From: ... |
255 | 299 | To: carlos@canonical.com | 294 | To: carlos@canonical.com |
256 | 300 | Subject: Launchpad translation download: Evolution trunk - | 295 | Subject: Launchpad translation download: Evolution trunk - |
257 | 301 | evolution-2.2 template | 296 | evolution-2.2 template |
259 | 302 | Hello Carlos Perell=C3=B3 Mar=C3=ADn, | 297 | Hello Carlos Perelló Marín, |
260 | 303 | <BLANKLINE> | 298 | <BLANKLINE> |
261 | 304 | The translation files you requested from Launchpad are ready for | 299 | The translation files you requested from Launchpad are ready for |
262 | 305 | download from the following location: | 300 | download from the following location: |
263 | @@ -310,10 +305,9 @@ | |||
264 | 310 | download these translations again, you will have to request | 305 | download these translations again, you will have to request |
265 | 311 | them again at | 306 | them again at |
266 | 312 | <BLANKLINE> | 307 | <BLANKLINE> |
269 | 313 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+ex= | 308 | http://translations.launchpad.../trunk/+pots/evolution-2.2/+export |
268 | 314 | port | ||
270 | 315 | <BLANKLINE> | 309 | <BLANKLINE> |
272 | 316 | -- = | 310 | -- |
273 | 317 | Automatic message from Launchpad.net. | 311 | Automatic message from Launchpad.net. |
274 | 318 | <BLANKLINE> | 312 | <BLANKLINE> |
275 | 319 | ---------------------------------------- | 313 | ---------------------------------------- |
276 | 320 | 314 | ||
277 | === modified file 'lib/lp/translations/doc/poexport-request.txt' | |||
278 | --- lib/lp/translations/doc/poexport-request.txt 2018-06-02 13:37:18 +0000 | |||
279 | +++ lib/lp/translations/doc/poexport-request.txt 2019-05-15 08:02:45 +0000 | |||
280 | @@ -182,7 +182,7 @@ | |||
281 | 182 | >>> emails = pop_notifications() | 182 | >>> emails = pop_notifications() |
282 | 183 | >>> len(emails) | 183 | >>> len(emails) |
283 | 184 | 1 | 184 | 1 |
285 | 185 | >>> print_emails(notifications=emails) | 185 | >>> print_emails(notifications=emails, decode=True) |
286 | 186 | From: ... | 186 | From: ... |
287 | 187 | To: downloader@example.com | 187 | To: downloader@example.com |
288 | 188 | Subject: Launchpad translation download: Ubuntu Hoary pmount - Czech | 188 | Subject: Launchpad translation download: Ubuntu Hoary pmount - Czech |
289 | @@ -198,10 +198,9 @@ | |||
290 | 198 | download these translations again, you will have to request | 198 | download these translations again, you will have to request |
291 | 199 | them again at | 199 | them again at |
292 | 200 | <BLANKLINE> | 200 | <BLANKLINE> |
295 | 201 | http://translations.launchpad.../pmount/+pots/pmoun= | 201 | http://translations.launchpad.../pmount/+pots/pmount/cs/+export |
294 | 202 | t/cs/+export | ||
296 | 203 | <BLANKLINE> | 202 | <BLANKLINE> |
298 | 204 | -- = | 203 | -- |
299 | 205 | Automatic message from Launchpad.net. | 204 | Automatic message from Launchpad.net. |
300 | 206 | ---------------------------------------- | 205 | ---------------------------------------- |
301 | 207 | 206 |