예제 #1
0
 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')
예제 #2
0
 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')
예제 #3
0
 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')
예제 #4
0
 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')
예제 #5
0
 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')
예제 #6
0
 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')
예제 #7
0
 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')
예제 #8
0
 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')
예제 #9
0
 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')
예제 #10
0
 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')
예제 #11
0
 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)
예제 #12
0
 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)
예제 #13
0
 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'
         })
예제 #14
0
 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'})
예제 #15
0
    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")
예제 #16
0
    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")
예제 #17
0
 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')
예제 #18
0
 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)
예제 #19
0
 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)
예제 #20
0
 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/'))
예제 #21
0
 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/'))
예제 #22
0
 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)
예제 #23
0
 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)
예제 #24
0
    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",
            },
        )