@@ -176,6 +176,7 @@ def assertResponse(
176
176
expected_status = 200 ,
177
177
expected_url = None ,
178
178
expected_redirect_url = None ,
179
+ expected_final_url = None ,
179
180
view_should_redirect = None ,
180
181
url_args = None ,
181
182
url_kwargs = None ,
@@ -395,6 +396,23 @@ def assertResponse(
395
396
else :
396
397
self .fail ('Expected no page redirects, but response processed one or more redirects.' )
397
398
399
+ # Verify final url.
400
+ # TODO: Inconsistent expected_x_url handling.
401
+ # See project issue 22 (https://github.com/brodriguez8774/django-expanded-test-cases/issues/22).
402
+ if expected_final_url is not None and response .url_data .computed .final_url != expected_final_url :
403
+ self .fail (
404
+ (
405
+ 'Expected final_url and actual final_url do not match. \n '
406
+ 'Expected final_url: \n '
407
+ '"{0}" \n '
408
+ 'Actual final_url: \n '
409
+ '"{1}" \n '
410
+ ).format (
411
+ expected_final_url ,
412
+ response .url_data .computed .final_url ,
413
+ )
414
+ )
415
+
398
416
# Verify page redirect.
399
417
# This is more specific than the above "view_should_redirect" assertion, so intentionally done second.
400
418
# TODO: Inconsistent expected_x_url handling.
@@ -505,6 +523,7 @@ def assertGetResponse(
505
523
expected_status = 200 ,
506
524
expected_url = None ,
507
525
expected_redirect_url = None ,
526
+ expected_final_url = None ,
508
527
view_should_redirect = None ,
509
528
url_args = None ,
510
529
url_kwargs = None ,
@@ -553,6 +572,7 @@ def assertGetResponse(
553
572
expected_status = expected_status ,
554
573
expected_url = expected_url ,
555
574
expected_redirect_url = expected_redirect_url ,
575
+ expected_final_url = expected_final_url ,
556
576
view_should_redirect = view_should_redirect ,
557
577
url_args = url_args ,
558
578
url_kwargs = url_kwargs ,
@@ -589,6 +609,7 @@ def assertPostResponse(
589
609
expected_status = 200 ,
590
610
expected_url = None ,
591
611
expected_redirect_url = None ,
612
+ expected_final_url = None ,
592
613
view_should_redirect = None ,
593
614
url_args = None ,
594
615
url_kwargs = None ,
@@ -643,6 +664,7 @@ def assertPostResponse(
643
664
expected_status = expected_status ,
644
665
expected_url = expected_url ,
645
666
expected_redirect_url = expected_redirect_url ,
667
+ expected_final_url = expected_final_url ,
646
668
view_should_redirect = view_should_redirect ,
647
669
url_args = url_args ,
648
670
url_kwargs = url_kwargs ,
@@ -680,6 +702,7 @@ def assertJsonResponse(
680
702
expected_status = 200 ,
681
703
expected_url = None ,
682
704
expected_redirect_url = None ,
705
+ expected_final_url = None ,
683
706
view_should_redirect = None ,
684
707
url_args = None ,
685
708
url_kwargs = None ,
@@ -759,6 +782,7 @@ def assertJsonResponse(
759
782
expected_status = expected_status ,
760
783
expected_url = expected_url ,
761
784
expected_redirect_url = expected_redirect_url ,
785
+ expected_final_url = expected_final_url ,
762
786
view_should_redirect = view_should_redirect ,
763
787
url_args = url_args ,
764
788
url_kwargs = url_kwargs ,
0 commit comments