Projet

Général

Profil

0005-test-modify-test-to-test-on-a-real-form-67090.patch

Benjamin Dauvergne, 15 décembre 2022 17:41

Télécharger (3,42 ko)

Voir les différences:

Subject: [PATCH 5/5] test: modify test to test on a real form (#67090)

 tests/test_saml_auth.py | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)
tests/test_saml_auth.py
16 16
from quixote import get_session_manager
17 17
from quixote.errors import RequestError
18 18

  
19
from wcs.categories import Category
20
from wcs.formdef import FormDef
19 21
from wcs.qommon import x509utils
20 22
from wcs.qommon.http_request import HTTPRequest
21 23
from wcs.qommon.ident.idp import MethodAdminDirectory
......
592 594

  
593 595

  
594 596
def test_opened_session_cookie(pub):
597
    Category.wipe()
598
    cat = Category(name='foobar')
599
    cat.store()
600

  
601
    FormDef.wipe()
602
    formdef = FormDef()
603
    formdef.name = 'test'
604
    formdef.category_id = str(cat.id)
605
    formdef.fields = []
606
    formdef.store()
607

  
595 608
    app = get_app(pub)
596 609
    app.set_cookie('IDP_OPENED_SESSION', '1')
597
    resp = app.get('/')
610
    resp = app.get('/foobar/test/')
598 611
    assert resp.status_int == 200
599 612
    pub.site_options.set('options', 'idp_session_cookie_name', 'IDP_OPENED_SESSION')
600 613
    with open(os.path.join(pub.app_dir, 'site-options.cfg'), 'w') as fd:
601 614
        pub.site_options.write(fd)
602 615

  
603
    resp = app.get('/?parameter=value')
616
    resp = app.get('/foobar/test/?parameter=value')
604 617
    cookie_name = '%s-passive-auth-tried' % pub.config.session_cookie_name
605 618
    cookie_store = http.cookies.SimpleCookie()
606 619
    cookie_store.load(resp.headers['Set-Cookie'])
......
611 624
    assert resp.status_int == 302
612 625
    assert (
613 626
        resp.location
614
        == 'http://example.net/login/?ReturnUrl=http%3A//example.net/%3Fparameter%3Dvalue&IsPassive=true'
627
        == 'http://example.net/login/?ReturnUrl=http%3A//example.net/foobar/test/%3Fparameter%3Dvalue&IsPassive=true'
615 628
    )
616 629
    assert cookie_name in app.cookies
617 630

  
618 631
    # if we try again, no passive authentication occurs
619
    resp = app.get('/?parameter=value')
632
    resp = app.get('/foobar/test/?parameter=value').maybe_follow()
620 633
    assert resp.status_int != 302
621 634

  
622 635
    # if IDP_OPENED_SESSION is modified, then passive authentication is tried again
623 636
    app.set_cookie('IDP_OPENED_SESSION', '2')
624
    resp = app.get('/?parameter=value')
637
    resp = app.get('/foobar/test/?parameter=value')
625 638
    assert resp.status_int == 302
626 639

  
627 640
    # simulate a saml login
......
640 653
    app.set_cookie(pub.config.session_cookie_name, session.id)
641 654
    assert get_session(app).opened_session_value == '2'
642 655

  
643
    resp = app.get('/?parameter=value')
656
    resp = app.get('/foobar/test/?parameter=value')
644 657
    assert resp.status_int == 200
645 658
    assert get_session(app).opened_session_value == '2'
646 659
    assert get_session(app).user == user.id
......
649 662

  
650 663
    # if OPENED_SESSION_COOKIE change then we are logged out
651 664
    app.set_cookie('IDP_OPENED_SESSION', '3')
652
    resp = app.get('/?parameter=value')
665
    resp = app.get('/foobar/test/?parameter=value')
653 666
    assert not get_session(app)
654 667
    assert not get_session_manager().session_class.get(session.id, ignore_errors=True)
655 668

  
656
-