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)
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'