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 default_subject_context(configured_securityutils, subject_context, full_mock_account, mock_session): csu = configured_securityutils context = { value: 'value_' + value for key, value in subject_context.items() } context["DefaultSubjectContext.ACCOUNT"] = full_mock_account context["DefaultSubjectContext.AUTHENTICATED"] = False return DefaultSubjectContext(security_utils=csu, context=context)
def test_sb_init_verify_generated_context( subject_builder_context, configured_securityutils): """ unit tested: __init__ test case: confirm that the subject context created by init reflects the arguments passed to the builder """ csu = configured_securityutils sbc = subject_builder_context sb = SubjectBuilder(security_utils=csu, **sbc) sb.resolve_subject_context() mycontext = DefaultSubjectContext(security_utils=csu, context=sbc) assert (sb.subject_context == mycontext)
def test_sb_init_verify_argument_context(subject_builder_context, configured_securityutils): """ unit tested: __init__ and context_attribute test case: when a subject_context argument is passed into init, any context attribute arguments aren't used by init """ sbc = subject_builder_context csu = configured_securityutils mycontext = DefaultSubjectContext(security_utils=csu, context=sbc) sb = SubjectBuilder(security_utils=csu, subject_context=mycontext, **sbc) sb.resolve_subject_context() assert (sb.subject_context == mycontext)
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'
def create_subject_context(self, existing_subject): if not hasattr(self, 'yosai'): msg = "SecurityManager has no Yosai attribute set." raise AttributeError(msg) return DefaultSubjectContext(self.yosai, self)
def subject_context(yosai): return DefaultSubjectContext(yosai=yosai, security_manager=yosai.security_manager)
def copy(self, subject_context): return DefaultSubjectContext(security_utils=self.security_utils, context=subject_context)
def create_subject_context(self): if not hasattr(self, 'security_utils'): msg = "SecurityManager has no SecurityUtils attribute set." raise MisconfiguredException(msg) return DefaultSubjectContext(security_utils=self.security_utils)