示例#1
0
def test_nsm_create_subject_w_context(native_security_manager, yosai):
    """
    unit tested:  create_subject

    test case:
    context is passed as an argument, and so it is used
    """
    nsm = native_security_manager

    testcontext = DefaultSubjectContext(yosai=yosai, security_manager=nsm)
    testcontext.authenticated = True
    testcontext.authentication_token = 'dumb_token'
    testcontext.account_id = 'dumb_account'
    testcontext.subject = 'existing_subject'

    with mock.patch.object(nsm, 'ensure_security_manager') as nsm_esm:
        nsm_esm.return_value = testcontext
        with mock.patch.object(nsm, 'resolve_session') as nsm_rs:
            nsm_rs.return_value = testcontext
            with mock.patch.object(nsm, 'resolve_identifiers') as nsm_rp:
                nsm_rp.return_value = testcontext
                with mock.patch.object(nsm, 'do_create_subject') as nsm_dcs:
                    nsm_dcs.return_value = None
                    with mock.patch.object(nsm, 'save') as nsm_save:
                        nsm_save.return_value = None

                        nsm.create_subject(subject_context=testcontext)

                        nsm_esm.assert_called_once_with(testcontext)
                        nsm_rs.assert_called_once_with(testcontext)
                        nsm_rp.assert_called_once_with(testcontext)
                        nsm_dcs.assert_called_once_with(testcontext)
示例#2
0
def test_nsm_create_subject_wo_context(
        native_security_manager, yosai):
    """
    unit tested:  create_subject

    test case:
    When no subject_context argument is given, a new subject_context is
    created.  The subject_context is used to create a new subject, which is
    saved and then returned.
    """
    nsm = native_security_manager

    testcontext = DefaultSubjectContext(yosai=yosai, security_manager=nsm)
    testcontext.authenticated = True
    testcontext.authentication_token = 'dumb_token'
    testcontext.account_id = 'dumb_account'
    testcontext.subject = 'existing_subject'

    with mock.patch.object(nsm, 'ensure_security_manager') as nsm_esm:
        nsm_esm.return_value = testcontext
        with mock.patch.object(nsm, 'resolve_session') as nsm_rs:
            nsm_rs.return_value = testcontext
            with mock.patch.object(nsm, 'resolve_identifiers') as nsm_rp:
                nsm_rp.return_value = testcontext
                with mock.patch.object(nsm, 'do_create_subject') as nsm_dcs:
                    nsm_dcs.return_value = 'subject'
                    with mock.patch.object(nsm, 'save') as nsm_save:
                        nsm_save.return_value = None

                        result = nsm.create_subject(authc_token='dumb_token',
                                                    account_id='dumb_account',
                                                    existing_subject='existing_subject')

                        nsm_esm.assert_called_once_with(testcontext)
                        nsm_rs.assert_called_once_with(testcontext)
                        nsm_rp.assert_called_once_with(testcontext)
                        nsm_dcs.assert_called_once_with(testcontext)
                        assert result == 'subject'