def test_do_GET_minimal(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) survey['1'].title = u'Module title.' risk = survey['1']['2'] risk.title = u'Everything is under control.' risk.problem_description = u'Not everything under control.' risk.description = None risk.evaluation_method = 'direct' risk.image = None request = TestRequest() request.survey = survey risk = object_session(survey_session).query(Risk).first() view = self.View(risk, request) response = view.do_GET() self.assertEqual( set(response), set(['id', 'type', 'title', 'module-title', 'problem-description', 'show-not-applicable', 'evaluation-method', 'present', 'priority', 'comment'])) self.assertEqual(response['id'], 2) self.assertEqual(response['type'], 'risk') self.assertEqual(response['title'], u'Everything is under control.') self.assertEqual(response['module-title'], u'Module title.') self.assertEqual( response['problem-description'], u'Not everything under control.') self.assertEqual(response['show-not-applicable'], False) self.assertEqual(response['evaluation-method'], 'direct') self.assertEqual(response['present'], None) self.assertEqual(response['priority'], u'high')
def test_do_GET_minimal(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) survey['1'].title = u'Module title.' risk = survey['1']['2'] risk.title = u'Everything is under control.' risk.problem_description = u'Not everything under control.' risk.description = None risk.evaluation_method = 'direct' risk.image = None request = TestRequest() request.survey = survey risk = object_session(survey_session).query(Risk).first() view = self.View(risk, request) response = view.do_GET() self.assertEqual( set(response), set([ 'id', 'type', 'title', 'module-title', 'problem-description', 'show-not-applicable', 'evaluation-method', 'present', 'priority', 'comment' ])) self.assertEqual(response['id'], 2) self.assertEqual(response['type'], 'risk') self.assertEqual(response['title'], u'Everything is under control.') self.assertEqual(response['module-title'], u'Module title.') self.assertEqual(response['problem-description'], u'Not everything under control.') self.assertEqual(response['show-not-applicable'], False) self.assertEqual(response['evaluation-method'], 'direct') self.assertEqual(response['present'], None) self.assertEqual(response['priority'], u'high')
def test_do_PUT_present_invalid_value(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) request = TestRequest() request.survey = survey request.survey_session = survey_session risk = object_session(survey_session).query(Risk).first() view = self.Identification(risk, request) view.input = {'present': 'foo'} response = view.do_PUT() self.assertEqual(response['type'], 'error')
def test_do_PUT_set_priority_for_top5_risk_not_allowed(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) risk = survey['1']['2'] risk.type = 'top5' request = TestRequest() request.survey = survey request.survey_session = survey_session risk = object_session(survey_session).query(Risk).first() view = self.ActionPlan(risk, request) view.input = {'priority': 'low'} response = view.do_PUT() self.assertEqual(response['type'], 'error')
def test_do_PUT_missing_value(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Module self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) module = survey['1'] module.optional = True request = TestRequest() request.survey = survey request.survey_session = survey_session risk = object_session(survey_session).query(Module).first() view = self.Identification(risk, request) view.input = {} response = view.do_PUT() self.assertEqual(response['type'], 'error')
def test_do_PUT_keep_existing_comment(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) request = TestRequest() request.survey = survey request.survey_session = survey_session risk = object_session(survey_session).query(Risk).first() risk.comment = u'Original comment' view = self.Identification(risk, request) view.input = {'present': 'yes'} response = view.do_PUT() self.assertEqual(response['comment'], u'Original comment') self.assertEqual(risk.comment, u'Original comment')
def test_do_PUT_update_value(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Module self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) module = survey['1'] module.optional = True request = TestRequest() request.survey = survey request.survey_session = survey_session module = object_session(survey_session).query(Module).first() view = self.Identification(module, request) view.input = {'skip-children': True} response = view.do_PUT() self.assertEqual(response['skip-children'], True) self.assertEqual(module.skip_children, True)
def test_do_GET_full(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk from euphorie.content.solution import Solution from plone.namedfile.file import NamedBlobImage self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) risk = survey['1']['2'] risk.description = u'<p>Simple description</p>' risk.legal_reference = u'<p>Catch 22</p>' risk.evaluation_method = 'calculated' risk.image2 = NamedBlobImage(data=DUMMY_GIF, contentType='image/gif', filename=u'dummy.gif') risk.caption2 = u'Secondary Image' risk['3'] = Solution(description=u'Standard solution 1', action_plan=u'Dummy plan', requirements=u'Dummy requirements') request = TestRequest() request.survey = survey risk = object_session(survey_session).query(Risk).first() risk.skip_children = True view = self.View(risk, request) response = view.do_GET() self.assertEqual( set(response), set([ 'id', 'type', 'title', 'module-title', 'problem-description', 'show-not-applicable', 'evaluation-method', 'present', 'priority', 'comment', 'description', 'legal-reference', 'evaluation-algorithm', 'frequency', 'frequency-options', 'effect', 'effect-options', 'probability', 'probability-options', 'images', 'standard-solutions' ])) self.assertEqual(response['description'], u'<p>Simple description</p>') self.assertEqual(response['legal-reference'], u'<p>Catch 22</p>') self.assertEqual(len(response['images']), 2) self.assertEqual(len(response['standard-solutions']), 1) self.assertEqual( response['standard-solutions'][0], { 'description': u'Standard solution 1', 'action-plan': u'Dummy plan', 'prevention-plan': None, 'requirements': u'Dummy requirements' })
def test_do_GET_full(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk from euphorie.content.solution import Solution from plone.namedfile.file import NamedBlobImage self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) risk = survey['1']['2'] risk.description = u'<p>Simple description</p>' risk.legal_reference = u'<p>Catch 22</p>' risk.evaluation_method = 'calculated' risk.image2 = NamedBlobImage(data=DUMMY_GIF, contentType='image/gif', filename=u'dummy.gif') risk.caption2 = u'Secondary Image' risk['3'] = Solution(description=u'Standard solution 1', action_plan=u'Dummy plan', requirements=u'Dummy requirements') request = TestRequest() request.survey = survey risk = object_session(survey_session).query(Risk).first() risk.skip_children = True view = self.View(risk, request) response = view.do_GET() self.assertEqual( set(response), set(['id', 'type', 'title', 'module-title', 'problem-description', 'show-not-applicable', 'evaluation-method', 'present', 'priority', 'comment', 'description', 'legal-reference', 'evaluation-algorithm', 'frequency', 'frequency-options', 'effect', 'effect-options', 'probability', 'probability-options', 'images', 'standard-solutions' ])) self.assertEqual(response['description'], u'<p>Simple description</p>') self.assertEqual(response['legal-reference'], u'<p>Catch 22</p>') self.assertEqual(len(response['images']), 2) self.assertEqual(len(response['standard-solutions']), 1) self.assertEqual( response['standard-solutions'][0], {'description': u'Standard solution 1', 'action-plan': u'Dummy plan', 'prevention-plan': None, 'requirements': u'Dummy requirements'})
def test_do_GET_minimal(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) survey["1"].title = u"Module title." risk = survey["1"]["2"] risk.title = u"Everything is under control." risk.problem_description = u"Not everything under control." risk.description = None risk.evaluation_method = "direct" risk.image = None request = TestRequest() request.survey = survey risk = object_session(survey_session).query(Risk).first() view = self.View(risk, request) response = view.do_GET() self.assertEqual( set(response), set( [ "id", "type", "title", "module-title", "problem-description", "show-not-applicable", "evaluation-method", "present", "priority", "comment", ] ), ) self.assertEqual(response["id"], 2) self.assertEqual(response["type"], "risk") self.assertEqual(response["title"], u"Everything is under control.") self.assertEqual(response["module-title"], u"Module title.") self.assertEqual(response["problem-description"], u"Not everything under control.") self.assertEqual(response["show-not-applicable"], False) self.assertEqual(response["evaluation-method"], "direct") self.assertEqual(response["present"], None) self.assertEqual(response["priority"], u"high")
def test_do_PUT_set_priority_for_normal_risk(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) risk = survey["1"]["2"] risk.type = "risk" request = TestRequest() request.survey = survey request.survey_session = survey_session risk = object_session(survey_session).query(Risk).first() view = self.ActionPlan(risk, request) view.input = {"priority": "low"} response = view.do_PUT() self.assertEqual(response["priority"], "low") self.assertEqual(risk.priority, "low")
def test_do_PUT_direct_evaluation(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) risk = survey['1']['2'] risk.type = 'risk' risk.evaluation_method = 'direct' request = TestRequest() request.survey = survey request.survey_session = survey_session risk = object_session(survey_session).query(Risk).first() view = self.Evaluation(risk, request) view.input = {'priority': 'high'} response = view.do_PUT() self.assertEqual(response['priority'], 'high') self.assertEqual(risk.priority, 'high')
def test_do_GET_minimal(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Module self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) request = TestRequest() request.survey = survey module = object_session(survey_session).query(Module).first() view = self.View(module, request) response = view.do_GET() self.assertEqual( set(response), set(['id', 'type', 'title', 'description', 'optional'])) self.assertEqual(response['id'], 1) self.assertEqual(response['type'], 'module') self.assertEqual(response['title'], u'Module one') self.assertEqual(response['description'], u'Quick description') self.assertEqual(response['optional'], False)
def test_do_GET_full(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Module from plone.namedfile.file import NamedBlobImage self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) module = survey['1'] module.description = u'<p>Simple description</p>' module.solution_direction = u'<p>Fix It Fast</p>' module.optional = True module.question = u'Is this needed?' module.image = NamedBlobImage(data=DUMMY_GIF, contentType='image/gif', filename=u'dummy.gif') module.caption = u'Key Image' request = TestRequest() request.survey = survey module = object_session(survey_session).query(Module).first() module.skip_children = True view = self.View(module, request) response = view.do_GET() self.assertEqual( set(response), set(['id', 'type', 'title', 'optional', 'image', 'description', 'solution-direction', 'question', 'skip-children'])) self.assertEqual(response['description'], u'<p>Simple description</p>') self.assertEqual(response['solution-direction'], u'<p>Fix It Fast</p>') self.assertEqual(response['question'], u'Is this needed?') self.assertEqual(response['skip-children'], True) self.assertEqual( set(response['image']), set(['thumbnail', 'original', 'caption'])) self.assertEqual(response['image']['caption'], u'Key Image') self.assertEqual( response['image']['original'], u'http://nohost/plone/client/nl/ict/software-development/1/' '@@download/image/dummy.gif') self.assertTrue( response['image']['thumbnail'].startswith( u'http://nohost/plone/client/nl/ict/software-development' '/1/@@images/'))
def test_do_GET_full(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Module from plone.namedfile.file import NamedBlobImage self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) module = survey['1'] module.description = u'<p>Simple description</p>' module.solution_direction = u'<p>Fix It Fast</p>' module.optional = True module.question = u'Is this needed?' module.image = NamedBlobImage(data=DUMMY_GIF, contentType='image/gif', filename=u'dummy.gif') module.caption = u'Key Image' request = TestRequest() request.survey = survey module = object_session(survey_session).query(Module).first() module.skip_children = True view = self.View(module, request) response = view.do_GET() self.assertEqual( set(response), set([ 'id', 'type', 'title', 'optional', 'image', 'description', 'solution-direction', 'question', 'skip-children' ])) self.assertEqual(response['description'], u'<p>Simple description</p>') self.assertEqual(response['solution-direction'], u'<p>Fix It Fast</p>') self.assertEqual(response['question'], u'Is this needed?') self.assertEqual(response['skip-children'], True) self.assertEqual(set(response['image']), set(['thumbnail', 'original', 'caption'])) self.assertEqual(response['image']['caption'], u'Key Image') self.assertEqual( response['image']['original'], u'http://nohost/plone/client/nl/ict/software-development/1/' '@@download/image/dummy.gif') self.assertTrue(response['image']['thumbnail'].startswith( u'http://nohost/plone/client/nl/ict/software-development' '/1/@@images/'))
def test_do_GET_use_vocabulary_token(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) risk = survey['1']['2'] risk.title = u'Everything is under control.' risk.problem_description = u'Not everything under control.' risk.description = None risk.evaluation_method = 'calculated' request = TestRequest() request.survey = survey risk = object_session(survey_session).query(Risk).first() risk.probability = 3 risk.frequency = 7 view = self.View(risk, request) response = view.do_GET() self.assertEqual(response['probability'], 'medium') self.assertEqual(response['frequency'], 'constant') self.assertEqual(response['effect'], None)
def test_do_GET_full(self): from sqlalchemy.orm import object_session from zope.publisher.browser import TestRequest from euphorie.client.model import Risk from euphorie.content.solution import Solution from plone.namedfile.file import NamedBlobImage self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) risk = survey["1"]["2"] risk.description = u"<p>Simple description</p>" risk.legal_reference = u"<p>Catch 22</p>" risk.evaluation_method = "calculated" risk.image2 = NamedBlobImage(data=DUMMY_GIF, contentType="image/gif", filename=u"dummy.gif") risk.caption2 = u"Secondary Image" risk["3"] = Solution( description=u"Standard solution 1", action_plan=u"Dummy plan", requirements=u"Dummy requirements" ) request = TestRequest() request.survey = survey risk = object_session(survey_session).query(Risk).first() risk.skip_children = True view = self.View(risk, request) response = view.do_GET() self.assertEqual( set(response), set( [ "id", "type", "title", "module-title", "problem-description", "show-not-applicable", "evaluation-method", "present", "priority", "comment", "description", "legal-reference", "evaluation-algorithm", "frequency", "frequency-options", "effect", "effect-options", "probability", "probability-options", "images", "standard-solutions", ] ), ) self.assertEqual(response["description"], u"<p>Simple description</p>") self.assertEqual(response["legal-reference"], u"<p>Catch 22</p>") self.assertEqual(len(response["images"]), 2) self.assertEqual(len(response["standard-solutions"]), 1) self.assertEqual( response["standard-solutions"][0], { "description": u"Standard solution 1", "action-plan": u"Dummy plan", "prevention-plan": None, "requirements": u"Dummy requirements", }, )