+ motion='g1.30200402.001'
+ reason="cancel-test"
+ response = self.cancelMotion(user, motion, reason)
+ self.assertEqual(response.status_code, 404)
+ self.assertIn(str.encode('Error, Not found'), response.data)
+
+ motion='g1.20200402.004'
+ response = self.cancelMotion(user, motion, reason)
+ self.assertEqual(response.status_code, 403)
+ self.assertIn(str.encode('Error, motion was canceled'), response.data)
+
+ def test_SeeFinishMotion(self):
+ self.db_sampledata()
+
+ motion='g1.20200402.004'
+ result = self.app.get('/motion/' + motion, environ_base={'USER_ROLES': user}, follow_redirects=True)
+ testtext= '<button type="submit" class="btn btn-danger" name="finish" value="finish" id="finish">Finish</button>'
+ self.assertIn(str.encode(testtext), result.data)
+
+ motion='g1.20200402.004'
+ result = self.app.get('/motion/' + motion, environ_base={'USER_ROLES': 'testuser/vote:*'}, follow_redirects=True)
+ testtext= '<button type="submit" class="btn btn-danger" name="finish" value="finish" id="finish">Finish</button>'
+ self.assertNotIn(str.encode(testtext), result.data)
+
+ def test_finishMotion(self):
+ self.db_sampledata()
+
+ motion='g1.20200402.004'
+ response = self.finishMotion(user, motion)
+ self.assertEqual(response.status_code, 302)
+ result = self.app.get('/', environ_base={'USER_ROLES': user})
+ self.assertIn(b'Motion D</span> (Finished)', result.data)
+
+ motion='g1.30190402.001'
+ response = self.finishMotion(user, motion)
+ self.assertEqual(response.status_code, 404)
+ self.assertIn(str.encode('Error, Not found'), response.data)
+
+ motion='g1.20200402.001'
+ response = self.finishMotion(user, motion)
+ self.assertEqual(response.status_code, 403)
+ self.assertIn(str.encode('Error, out of time'), response.data)
+
+ def test_createMotionWait(self):
+ # test no limit given
+ self.db_sampledata()
+ title='My Motion'
+ content='My body'
+ response = self.createMotion(user, title, content, '3', 'group1')
+ self.assertEqual(response.status_code, 302)
+
+ # test different host
+ app.config.update(MOTION_WAIT_MINUTES={'127.0.0.1:5001':1})
+ response = self.createMotion(user, title, content, '3', 'group1')
+ self.assertEqual(response.status_code, 302)
+
+ # test 3 minutes
+ app.config.update(MOTION_WAIT_MINUTES={'127.0.0.1:5000':3})
+ response = self.createMotion(user, title, content, '3', 'group1')
+ self.assertIn(str.encode('Error, time between last motion to short. The current setting is 3 minute(s).'), response.data)
+