def test_getitem_id_from_other_risk(self): from euphorie.client.model import ActionPlan risk1 = self._make_risk('jane') risk1.action_plans.append(ActionPlan(action_plan=u'This is the plan')) risk2 = self._make_risk('cindy') plans = self.RiskActionPlans('actionplans', None, risk2) self.assertRaises(KeyError, plans.__getitem__, '1')
def test_do_PUT_bad_data(self): from euphorie.client.model import ActionPlan context = ActionPlan() view = self.View(context, None) view.input = {'budget': 'unlimited'} response = view.do_PUT() self.assertEqual(response['type'], 'error')
def test_do_PUT_returns_info(self): import mock from euphorie.client.model import ActionPlan view = self.View(ActionPlan(), None) view.input = {} view.do_GET = mock.Mock(return_value='info') self.assertEqual(view.do_PUT(), 'info')
def test_with_dates(self): import datetime from euphorie.client.model import ActionPlan plan = ActionPlan(planning_start=datetime.date(2012, 6, 3), planning_end=datetime.date(2012, 6, 4)) info = self.plan_info(plan) self.assertEqual(info['planning-start'], '2012-06-03') self.assertEqual(info['planning-end'], '2012-06-04')
def test_getitem_id_from_other_risk(self): from Acquisition import aq_base from Acquisition import aq_parent from euphorie.client.model import ActionPlan risk = self._make_risk('jane') plan = ActionPlan(action_plan=u'This is the plan') risk.action_plans.append(plan) plans = self.RiskActionPlans('actionplans', None, risk) wrapped_plan = plans['1'] self.assertTrue(aq_base(wrapped_plan) is plan) self.assertTrue(aq_base(aq_parent(wrapped_plan)) is plans) self.assertRaises(KeyError, plans.__getitem__, '1')
def test_with_plan(self): import mock from euphorie.client.model import ActionPlan context = self._build_context() plan = ActionPlan(action_plan=u'This is the plan') context.risk.action_plans.append(plan) with mock.patch('euphorie.client.api.actionplans.plan_info') \ as mock_plan_info: mock_plan_info.return_value = 'plan-info' view = self.View(context, None) plans = view.plans() self.assertEqual(plans, ['plan-info']) mock_plan_info.assert_called_once_with(plan)
def test_do_PUT_update_data(self): import datetime from euphorie.client.model import ActionPlan context = ActionPlan() view = self.View(context, None) view.input = { 'plan': 'Collect underpants', 'budget': 15, 'planning-start': '2012-06-04' } view.do_PUT() self.assertEqual(context.action_plan, u'Collect underpants') self.assertEqual(context.budget, 15) self.assertEqual(context.planning_start, datetime.date(2012, 6, 4))
def test_minimal(self): from euphorie.client.model import ActionPlan plan = ActionPlan(id=15, action_plan=u'This is the plan') info = self.plan_info(plan) self.assertEqual( set(info), set([ 'id', 'plan', 'prevention', 'requirements', 'responsible', 'budget', 'planning-start', 'planning-end', 'reference' ])) self.assertEqual(info['plan'], u'This is the plan') self.assertEqual(info['prevention'], None) self.assertEqual(info['requirements'], None) self.assertEqual(info['responsible'], None) self.assertEqual(info['budget'], None) self.assertEqual(info['planning-start'], None) self.assertEqual(info['planning-end'], None)
def test_get(self): import datetime import json from sqlalchemy.orm import object_session from euphorie.client.model import Risk from euphorie.client.model import ActionPlan from euphorie.client.api.authentication import generate_token from euphorie.client.api.tests.test_risk import _setup_session self.loginAsPortalOwner() (account, survey, survey_session) = _setup_session(self.portal) risk = object_session(survey_session).query(Risk).one() risk.action_plans.append( ActionPlan(action_plan=u'This is the plan', planning_start=datetime.date(2012, 6, 3))) browser = Browser() browser.addHeader('X-Euphorie-Token', generate_token(account)) browser.open('http://nohost/plone/client/api/users/1/' 'sessions/1/1/1/actionplans') self.assertEqual(browser.headers['Content-Type'], 'application/json') response = json.loads(browser.contents) self.assertTrue('action-plans' in response)