3206 |
3206 |
assert 'Card Model 1' in cell_resp
|
3207 |
3207 |
assert '<p>Unknown Card</p>' not in cell_resp
|
3208 |
3208 |
assert len(mock_send.call_args_list) == 1
|
3209 |
|
assert '/api/cards/card_model_1/11/' in mock_send.call_args_list[0][0][0].url
|
|
3209 |
assert '/api/cards/card_model_1/list' in mock_send.call_args_list[0][0][0].url
|
|
3210 |
assert '&filter-internal-id=11&' in mock_send.call_args_list[0][0][0].url
|
3210 |
3211 |
|
3211 |
3212 |
# with identifiers
|
3212 |
3213 |
page.sub_slug = ''
|
... | ... | |
3224 |
3225 |
assert 'Card Model 1' in cell_resp
|
3225 |
3226 |
assert '<p>Unknown Card</p>' in cell_resp
|
3226 |
3227 |
assert len(mock_send.call_args_list) == 1
|
3227 |
|
assert '/api/cards/card_model_1/42/' in mock_send.call_args_list[0][0][0].url
|
|
3228 |
assert '/api/cards/card_model_1/list' in mock_send.call_args_list[0][0][0].url
|
|
3229 |
assert '&filter-internal-id=42&' in mock_send.call_args_list[0][0][0].url
|
3228 |
3230 |
|
3229 |
3231 |
cell.card_ids = '42, , 35'
|
3230 |
3232 |
cell.save()
|
... | ... | |
3240 |
3242 |
assert 'Card Model 1' in cell_resp
|
3241 |
3243 |
assert '<p>Unknown Card</p>' in cell_resp
|
3242 |
3244 |
assert len(mock_send.call_args_list) == 2
|
3243 |
|
assert '/api/cards/card_model_1/42/' in mock_send.call_args_list[0][0][0].url
|
3244 |
|
assert '/api/cards/card_model_1/35/' in mock_send.call_args_list[1][0][0].url
|
|
3245 |
for i in range(0, 2):
|
|
3246 |
assert '/api/cards/card_model_1/list' in mock_send.call_args_list[i][0][0].url
|
|
3247 |
assert '&filter-internal-id=42&filter-internal-id=35&' in mock_send.call_args_list[i][0][0].url
|
3245 |
3248 |
|
3246 |
3249 |
cell.card_ids = '{% cards|objects:"card_model_1"|last|get:"id" %}' # syntax error
|
3247 |
3250 |
cell.save()
|
... | ... | |
3267 |
3270 |
assert '/api/cards/card_model_1/list' in mock_send.call_args_list[0][0][0].url
|
3268 |
3271 |
# cell rendering
|
3269 |
3272 |
assert '/api/cards/card_model_1/list' in mock_send.call_args_list[1][0][0].url
|
3270 |
|
assert '/api/cards/card_model_1/13/' in mock_send.call_args_list[2][0][0].url
|
|
3273 |
assert '/api/cards/card_model_1/list' in mock_send.call_args_list[2][0][0].url
|
|
3274 |
assert '&filter-internal-id=13&' in mock_send.call_args_list[2][0][0].url
|
3271 |
3275 |
|
3272 |
3276 |
def test_card_ids():
|
3273 |
3277 |
mock_send.reset_mock()
|
... | ... | |
3283 |
3287 |
# page rendering
|
3284 |
3288 |
assert '/api/cards/card_model_1/list' in mock_send.call_args_list[0][0][0].url
|
3285 |
3289 |
# cell rendering
|
|
3290 |
card_ids = [c['id'] for c in WCS_CARDS_DATA['card_model_1']]
|
|
3291 |
filters = '&%s&' % '&'.join('filter-internal-id=%s' % cid for cid in card_ids)
|
3286 |
3292 |
for i in range(0, 3):
|
3287 |
3293 |
assert '/api/cards/card_model_1/list' in mock_send.call_args_list[i * 2 + 1][0][0].url
|
3288 |
|
assert (
|
3289 |
|
'/api/cards/card_model_1/%s/' % WCS_CARDS_DATA['card_model_1'][i]['id']
|
3290 |
|
in mock_send.call_args_list[i * 2 + 2][0][0].url
|
3291 |
|
)
|
|
3294 |
assert '/api/cards/card_model_1/list' in mock_send.call_args_list[i * 2 + 2][0][0].url
|
|
3295 |
assert filters in mock_send.call_args_list[i * 2 + 2][0][0].url
|
3292 |
3296 |
|
3293 |
3297 |
for card_ids in [
|
3294 |
3298 |
'{% for card in cards|objects:"card_model_1" %}{{ card.id }},{% endfor %}',
|
... | ... | |
3361 |
3365 |
cell_resp = app.get(cell2_url + '?ctx=' + extra_ctx[1])
|
3362 |
3366 |
assert cell_resp.context['repeat_index'] == 0
|
3363 |
3367 |
assert len(mock_send.call_args_list) == len(urls)
|
3364 |
|
for j, url in enumerate(urls):
|
3365 |
|
assert url in mock_send.call_args_list[j][0][0].url
|
|
3368 |
for j, url_parts in enumerate(urls):
|
|
3369 |
if not isinstance(url_parts, tuple):
|
|
3370 |
url_parts = (url_parts,)
|
|
3371 |
for url_part in url_parts:
|
|
3372 |
assert url_part in mock_send.call_args_list[j][0][0].url
|
3366 |
3373 |
|
3367 |
3374 |
def multiple(urls):
|
3368 |
3375 |
resp = app.get(page.get_online_url())
|
... | ... | |
3376 |
3383 |
cell_resp = app.get(cell2_url + '?ctx=' + extra_ctx[i + 1])
|
3377 |
3384 |
assert cell_resp.context['repeat_index'] == i
|
3378 |
3385 |
assert len(mock_send.call_args_list) == len(urls)
|
3379 |
|
for j, url in enumerate(urls):
|
3380 |
|
if isinstance(url, list):
|
3381 |
|
assert url[i] in mock_send.call_args_list[j][0][0].url
|
3382 |
|
else:
|
3383 |
|
assert url in mock_send.call_args_list[j][0][0].url
|
|
3386 |
for j, url_parts in enumerate(urls):
|
|
3387 |
if not isinstance(url_parts, tuple):
|
|
3388 |
url_parts = (url_parts,)
|
|
3389 |
for url_part in url_parts:
|
|
3390 |
assert url_part in mock_send.call_args_list[j][0][0].url
|
3384 |
3391 |
|
3385 |
3392 |
# no cell with this slug
|
3386 |
3393 |
cell2.related_card_path = 'slugz/cardb'
|
... | ... | |
3430 |
3437 |
# get first cell data
|
3431 |
3438 |
'/api/cards/card_a/1/',
|
3432 |
3439 |
# and follow cardb relation
|
3433 |
|
'/api/cards/card_b/1/',
|
|
3440 |
('/api/cards/card_b/list', '&filter-internal-id=1&'),
|
3434 |
3441 |
]
|
3435 |
3442 |
)
|
3436 |
3443 |
cell3.delete() # reset
|
... | ... | |
3446 |
3453 |
# follow cardc relation
|
3447 |
3454 |
'/api/cards/card_c/6/',
|
3448 |
3455 |
# and follow cardb relation
|
3449 |
|
'/api/cards/card_b/7/',
|
|
3456 |
('/api/cards/card_b/list', '&filter-internal-id=7&'),
|
3450 |
3457 |
]
|
3451 |
3458 |
)
|
3452 |
3459 |
|
... | ... | |
3466 |
3473 |
# follow cardc relation
|
3467 |
3474 |
'/api/cards/card_c/6/',
|
3468 |
3475 |
# and follow cardb relation
|
3469 |
|
'/api/cards/card_b/7/',
|
|
3476 |
('/api/cards/card_b/list', '&filter-internal-id=7&'),
|
3470 |
3477 |
]
|
3471 |
3478 |
resp = app.get(page.get_online_url())
|
3472 |
3479 |
assert len(resp.context['cells']) == 2
|
... | ... | |
3478 |
3485 |
cell_resp = app.get(cell2_url + '?ctx=' + extra_ctx[0])
|
3479 |
3486 |
assert cell_resp.context['repeat_index'] == 0
|
3480 |
3487 |
assert len(mock_send.call_args_list) == len(urls)
|
3481 |
|
for j, url in enumerate(urls):
|
3482 |
|
assert url in mock_send.call_args_list[j][0][0].url
|
|
3488 |
for j, url_parts in enumerate(urls):
|
|
3489 |
if not isinstance(url_parts, tuple):
|
|
3490 |
url_parts = (url_parts,)
|
|
3491 |
for url_part in url_parts:
|
|
3492 |
assert url_part in mock_send.call_args_list[j][0][0].url
|
3483 |
3493 |
|
3484 |
3494 |
# reset
|
3485 |
3495 |
cell.order = 0 # reset
|
... | ... | |
3499 |
3509 |
# follow cardc relation
|
3500 |
3510 |
'/api/cards/card_c/6/',
|
3501 |
3511 |
# and follow cardb relation
|
3502 |
|
'/api/cards/card_b/a-custom-view/7/',
|
|
3512 |
('/api/cards/card_b/list/a-custom-view', '&filter-internal-id=7&'),
|
3503 |
3513 |
]
|
3504 |
3514 |
)
|
3505 |
3515 |
|
... | ... | |
3512 |
3522 |
# get first cell data
|
3513 |
3523 |
'/api/cards/card_a/1/',
|
3514 |
3524 |
# and follow cardb relation
|
3515 |
|
['/api/cards/card_b/2/', '/api/cards/card_b/3/'],
|
|
3525 |
('/api/cards/card_b/list', '&filter-internal-id=2&filter-internal-id=3&'),
|
3516 |
3526 |
]
|
3517 |
3527 |
)
|
3518 |
3528 |
|
... | ... | |
3527 |
3537 |
# follow cardc relation
|
3528 |
3538 |
'/api/cards/card_c/6/',
|
3529 |
3539 |
# and follow cardb relation
|
3530 |
|
['/api/cards/card_b/8/', '/api/cards/card_b/9/'],
|
|
3540 |
('/api/cards/card_b/list', '&filter-internal-id=8&filter-internal-id=9&'),
|
3531 |
3541 |
]
|
3532 |
3542 |
)
|
3533 |
3543 |
|
... | ... | |
3539 |
3549 |
# get first cell data
|
3540 |
3550 |
'/api/cards/card_a/1/',
|
3541 |
3551 |
# and follow cardb relation
|
3542 |
|
['/api/cards/card_b/4/', '/api/cards/card_b/5/'],
|
|
3552 |
('/api/cards/card_b/list', '&filter-internal-id=4&filter-internal-id=5&'),
|
3543 |
3553 |
]
|
3544 |
3554 |
)
|
3545 |
3555 |
|
... | ... | |
3554 |
3564 |
# follow cardc relation
|
3555 |
3565 |
'/api/cards/card_c/6/',
|
3556 |
3566 |
# and follow cardb relation
|
3557 |
|
['/api/cards/card_b/10/', '/api/cards/card_b/11/'],
|
|
3567 |
('/api/cards/card_b/list', '&filter-internal-id=10&filter-internal-id=11&'),
|
3558 |
3568 |
]
|
3559 |
3569 |
)
|
3560 |
3570 |
|
... | ... | |
3716 |
3726 |
# get list of card_a with cardb=1
|
3717 |
3727 |
'/api/cards/card_a/list?orig=combo&filter-cardb=1',
|
3718 |
3728 |
# and follow carda reverse relation
|
3719 |
|
['/api/cards/card_a/%s/' % i for i in range(1, 5)],
|
|
3729 |
(
|
|
3730 |
'/api/cards/card_a/list',
|
|
3731 |
'&filter-internal-id=1&filter-internal-id=2&filter-internal-id=3&filter-internal-id=4&',
|
|
3732 |
),
|
3720 |
3733 |
]
|
3721 |
3734 |
)
|
3722 |
3735 |
|
... | ... | |
3730 |
3743 |
# get list of card_a with cardsb=1
|
3731 |
3744 |
'/api/cards/card_a/list?orig=combo&filter-cardsb=1',
|
3732 |
3745 |
# and follow carda reverse relation
|
3733 |
|
['/api/cards/card_a/%s/' % i for i in range(1, 5)],
|
|
3746 |
(
|
|
3747 |
'/api/cards/card_a/list',
|
|
3748 |
'&filter-internal-id=1&filter-internal-id=2&filter-internal-id=3&filter-internal-id=4&',
|
|
3749 |
),
|
3734 |
3750 |
]
|
3735 |
3751 |
)
|
3736 |
3752 |
|
... | ... | |
3744 |
3760 |
# get list of card_a with cardsb=1
|
3745 |
3761 |
'/api/cards/card_a/list?orig=combo&filter-blockb_cardb=1',
|
3746 |
3762 |
# and follow carda reverse relation
|
3747 |
|
['/api/cards/card_a/%s/' % i for i in range(1, 5)],
|
|
3763 |
(
|
|
3764 |
'/api/cards/card_a/list',
|
|
3765 |
'&filter-internal-id=1&filter-internal-id=2&filter-internal-id=3&filter-internal-id=4&',
|
|
3766 |
),
|
3748 |
3767 |
]
|
3749 |
3768 |
)
|
3750 |
3769 |
|
... | ... | |
3786 |
3805 |
# get list of card_f with cardf=42
|
3787 |
3806 |
'/api/cards/card_f/list?orig=combo&filter-cardh=42',
|
3788 |
3807 |
# and follow cardf reverse relation
|
3789 |
|
['/api/cards/card_f/41/'],
|
|
3808 |
('/api/cards/card_f/list', '&filter-internal-id=41&'),
|
3790 |
3809 |
]
|
3791 |
3810 |
)
|
3792 |
3811 |
|
... | ... | |
3805 |
3824 |
# get list of card_g with cardf=44
|
3806 |
3825 |
'/api/cards/card_g/list?orig=combo&filter-cardh=44',
|
3807 |
3826 |
# and follow cardf reverse relation
|
3808 |
|
['/api/cards/card_g/43/'],
|
|
3827 |
('/api/cards/card_g/list', '&filter-internal-id=43&'),
|
3809 |
3828 |
]
|
3810 |
3829 |
)
|
3811 |
3830 |
|
3812 |
|
-
|