14
14
import pytest
15
15
16
16
from pyramid .httpexceptions import HTTPBadRequest , HTTPNotFound
17
+ from webob .multidict import MultiDict
17
18
18
19
from warehouse .admin .views import organizations as views
19
20
from warehouse .organizations .interfaces import IOrganizationService
@@ -545,11 +546,63 @@ def test_detail(self, db_request):
545
546
db_request .matchdict ["organization_application_id" ] = (
546
547
organization_application .id
547
548
)
548
- assert views .organization_application_detail (db_request ) == {
549
- "user" : organization_application .submitted_by ,
550
- "conflicting_applications" : [],
551
- "organization_application" : organization_application ,
552
- }
549
+ result = views .organization_application_detail (db_request )
550
+ assert result ["user" ] == organization_application .submitted_by
551
+ assert result ["form" ].name .data == organization_application .name
552
+ assert result ["conflicting_applications" ] == []
553
+ assert result ["organization_application" ] == organization_application
554
+
555
+ @pytest .mark .usefixtures ("_enable_organizations" )
556
+ def test_detail_edit (self , db_request ):
557
+ organization_application = OrganizationApplicationFactory .create ()
558
+ db_request .matchdict ["organization_application_id" ] = (
559
+ organization_application .id
560
+ )
561
+
562
+ new_org_name = f"New-Org-Name-{ organization_application .name } "
563
+ db_request .method = "POST"
564
+ db_request .POST ["name" ] = new_org_name
565
+ db_request .POST ["description" ] = organization_application .description
566
+ db_request .POST ["display_name" ] = organization_application .display_name
567
+ db_request .POST ["link_url" ] = organization_application .link_url
568
+ db_request .POST ["orgtype" ] = organization_application .orgtype
569
+ db_request .POST = MultiDict (db_request .POST )
570
+
571
+ db_request .session .flash = pretend .call_recorder (lambda * a , ** kw : None )
572
+ db_request .current_route_path = lambda * a , ** kw : "/the/url/"
573
+
574
+ result = views .organization_application_detail (db_request )
575
+
576
+ assert result .status_code == 303
577
+ assert result .location == "/the/url/"
578
+ assert db_request .session .flash .calls == [
579
+ pretend .call (
580
+ f"Application for { organization_application .name !r} updated" ,
581
+ queue = "success" ,
582
+ )
583
+ ]
584
+
585
+ assert organization_application .name == new_org_name
586
+
587
+ @pytest .mark .usefixtures ("_enable_organizations" )
588
+ def test_detail_edit_invalid (self , db_request ):
589
+ existing_organization = OrganizationFactory .create ()
590
+ organization_application = OrganizationApplicationFactory .create ()
591
+
592
+ db_request .matchdict ["organization_application_id" ] = (
593
+ organization_application .id
594
+ )
595
+ db_request .method = "POST"
596
+ db_request .POST ["name" ] = existing_organization .name
597
+ db_request .POST = MultiDict (db_request .POST )
598
+
599
+ result = views .organization_application_detail (db_request )
600
+
601
+ assert result ["user" ] == organization_application .submitted_by
602
+ assert result ["form" ].name .data == existing_organization .name
603
+ assert result ["form" ].name .errors != []
604
+ assert result ["conflicting_applications" ] == []
605
+ assert result ["organization_application" ] == organization_application
553
606
554
607
@pytest .mark .usefixtures ("_enable_organizations" )
555
608
def test_detail_is_approved_true (self , db_request ):
@@ -559,11 +612,11 @@ def test_detail_is_approved_true(self, db_request):
559
612
db_request .matchdict ["organization_application_id" ] = (
560
613
organization_application .id
561
614
)
562
- assert views .organization_application_detail (db_request ) == {
563
- "user" : organization_application .submitted_by ,
564
- "conflicting_applications" : [],
565
- "organization_application" : organization_application ,
566
- }
615
+ result = views .organization_application_detail (db_request )
616
+ assert result [ "user" ] == organization_application .submitted_by
617
+ assert result [ "form" ]. name . data == organization_application . name
618
+ assert result [ "conflicting_applications" ] == []
619
+ assert result [ "organization_application" ] == organization_application
567
620
568
621
@pytest .mark .usefixtures ("_enable_organizations" )
569
622
def test_detail_is_approved_false (self , db_request ):
@@ -573,11 +626,11 @@ def test_detail_is_approved_false(self, db_request):
573
626
db_request .matchdict ["organization_application_id" ] = (
574
627
organization_application .id
575
628
)
576
- assert views .organization_application_detail (db_request ) == {
577
- "user" : organization_application .submitted_by ,
578
- "conflicting_applications" : [],
579
- "organization_application" : organization_application ,
580
- }
629
+ result = views .organization_application_detail (db_request )
630
+ assert result [ "user" ] == organization_application .submitted_by
631
+ assert result [ "form" ]. name . data == organization_application . name
632
+ assert result [ "conflicting_applications" ] == []
633
+ assert result [ "organization_application" ] == organization_application
581
634
582
635
@pytest .mark .usefixtures ("_enable_organizations" )
583
636
@pytest .mark .parametrize (
@@ -601,11 +654,11 @@ def test_detail_conflicting_applications(self, db_request, name, conflicts):
601
654
db_request .matchdict ["organization_application_id" ] = (
602
655
organization_application .id
603
656
)
604
- assert views .organization_application_detail (db_request ) == {
605
- "user" : organization_application .submitted_by ,
606
- "conflicting_applications" : conflicting_applications ,
607
- "organization_application" : organization_application ,
608
- }
657
+ result = views .organization_application_detail (db_request )
658
+ assert result [ "user" ] == organization_application .submitted_by
659
+ assert result [ "form" ]. name . data == organization_application . name
660
+ assert result [ "conflicting_applications" ] == conflicting_applications
661
+ assert result [ "organization_application" ] == organization_application
609
662
610
663
@pytest .mark .usefixtures ("_enable_organizations" )
611
664
def test_detail_not_found (self ):
0 commit comments