X-Git-Url: https://code.wpia.club/?p=motion.git;a=blobdiff_plain;f=tests%2Ftest_motion.py;h=436c06f446275a35c0a1b467e7722306475c3cf8;hp=b4ba9070980806a21c41f958626e50128c2364fe;hb=02e93d6b90efc63d77044f9416a469a5b314d372;hpb=1b3c98b99fa9d535f937903b657cf438e69bd82a diff --git a/tests/test_motion.py b/tests/test_motion.py index b4ba907..436c06f 100644 --- a/tests/test_motion.py +++ b/tests/test_motion.py @@ -1,5 +1,6 @@ from datetime import datetime from tests.test_basics import BasicTest +from motion import app # no specific rights required class GeneralTests(BasicTest): @@ -400,6 +401,21 @@ class CreateMotionTests(BasicTest): self.assertEqual(response.status_code, 403) self.assertIn(str.encode('Forbidden'), response.data) + def test_SeeCancelMotion(self): + self.db_sampledata() + + motion='g1.20200402.004' + result = self.app.get('/motion/' + motion, environ_base={'USER_ROLES': user}, follow_redirects=True) + testtext= '' + 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= '' + self.assertNotIn(str.encode(testtext), result.data) + def test_cancelMotion(self): self.db_sampledata() @@ -432,6 +448,21 @@ class CreateMotionTests(BasicTest): 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= '' + 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= '' + self.assertNotIn(str.encode(testtext), result.data) + def test_finishMotion(self): self.db_sampledata() @@ -451,6 +482,24 @@ class CreateMotionTests(BasicTest): 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) + class AuditMotionTests(BasicTest): def setUp(self): @@ -470,313 +519,6 @@ class AuditMotionTests(BasicTest): + '\n
User C: no
\n \n\nBack' self.assertIn(str.encode(testtext), result.data) -class ProxyManagementTests(BasicTest): - - def setUp(self): - self.init_test() - global user - user='testuser/proxyadmin:*' - self.db_sampledata() - - def tearDown(self): - pass - - def test_see_proxy(self): - result = self.app.get('proxy', environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= 'div class="container">\n
' - self.assertIn(str.encode(testtext), result.data) - testtext= 'proxy granted to:' - self.assertNotIn(str.encode(testtext), result.data) - testtext= 'holds proxy of:' - self.assertNotIn(str.encode(testtext), result.data) - testtext= '\n' - self.assertIn(str.encode(testtext), result.data) - testtext= '\n' - self.assertIn(str.encode(testtext), result.data) - testtext= '\n '\ - + '\n '\ - + '\n \n \n \n '\ - + '
VoterProxy
\n' - self.assertIn(str.encode(testtext), result.data) - testtext= 'Proxy management' - self.assertIn(str.encode(testtext), result.data) - - def test_add_proxy(self): - voter='' - proxy='' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, voter equals proxy.'), response.data) - - voter='User A' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, proxy not found.'), response.data) - - voter='User Z' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, voter not found.'), response.data) - - voter='' - proxy='User B' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, voter not found.'), response.data) - - voter='User B' - proxy='User B' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, voter equals proxy.'), response.data) - - voter='User A' - proxy='User B' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 302) - result = self.app.get('proxy', environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= '' - self.assertIn(str.encode(testtext), result.data) - testtext= '\n '\ - + '\n '\ - + '\n '\ - + '\n \n \n '\ - + '\n \n \n '\ - + '\n '\ - + '\n
VoterProxy
User AUser B
\n' - self.assertIn(str.encode(testtext), result.data) - - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, proxy allready given.'), response.data) - - voter='User A' - proxy='User C' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, proxy allready given.'), response.data) - - voter='User C' - proxy='User B' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 302) - result = self.app.get('proxy', environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= '\n '\ - + '\n '\ - + '\n '\ - + '\n \n \n '\ - + '\n \n \n '\ - + '\n \n '\ - + '\n \n \n '\ - + '\n '\ - + '\n
VoterProxy
User AUser B
User CUser B
\n' - self.assertIn(str.encode(testtext), result.data) - testtext= 'proxy granted to:' - self.assertNotIn(str.encode(testtext), result.data) - testtext= 'holds proxy of:' - self.assertNotIn(str.encode(testtext), result.data) - - voter='testuser' - proxy='User B' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, Max proxy for \'User B\' reached.'), response.data) - - voter='testuser' - proxy='User A' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 302) - result = self.app.get('proxy', environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= '\n '\ - + '\n '\ - + '\n \n \n \n '\ - + '\n \n \n '\ - + '\n \n '\ - + '\n \n \n '\ - + '\n \n '\ - + '\n \n \n '\ - + '\n '\ - + '\n
VoterProxy
testuserUser A
User AUser B
User CUser B
\n' - self.assertIn(str.encode(testtext), result.data) - testtext= 'proxy granted to: User A\n' - self.assertIn(str.encode(testtext), result.data) - testtext= 'holds proxy of:' - self.assertNotIn(str.encode(testtext), result.data) - - voter='User B' - proxy='testuser' - response = self.addProxy(user, voter, proxy) - self.assertEqual(response.status_code, 302) - result = self.app.get('proxy', environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= '\n '\ - + '\n '\ - + '\n \n \n \n '\ - + '\n \n \n '\ - + '\n \n '\ - + '\n \n \n '\ - + '\n \n '\ - + '\n \n \n '\ - + '\n \n '\ - + '\n \n \n '\ - + '\n '\ - + '\n
VoterProxy
testuserUser A
User AUser B
User Btestuser
User CUser B
\n' - self.assertIn(str.encode(testtext), result.data) - testtext= 'proxy granted to: User A\n' - self.assertIn(str.encode(testtext), result.data) - testtext= 'holds proxy of: User B\n' - self.assertIn(str.encode(testtext), result.data) - - response = self.revokeProxy(user, userid) - self.assertEqual(response.status_code, 302) - result = self.app.get('proxy', environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= '\n '\ - + '\n '\ - + '\n \n \n \n '\ - + '\n \n \n '\ - + '\n \n '\ - + '\n \n \n '\ - + '\n \n '\ - + '\n \n \n '\ - + '\n '\ - + '\n
VoterProxy
testuserUser A
User AUser B
User CUser B
\n' - self.assertIn(str.encode(testtext), result.data) - testtext= 'proxy granted to: User A\n' - self.assertIn(str.encode(testtext), result.data) - testtext= 'holds proxy of:' - self.assertNotIn(str.encode(testtext), result.data) - - response = self.revokeProxy(user, 3) - self.assertEqual(response.status_code, 302) - result = self.app.get('proxy', environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= '\n '\ - + '\n '\ - + '\n \n \n \n '\ - + '\n \n \n '\ - + '\n \n '\ - + '\n \n \n '\ - + '\n '\ - + '\n
VoterProxy
User AUser B
User CUser B
\n' - self.assertIn(str.encode(testtext), result.data) - testtext= 'proxy granted to:' - self.assertNotIn(str.encode(testtext), result.data) - testtext= 'holds proxy of:' - self.assertNotIn(str.encode(testtext), result.data) - - result = self.app.post('proxy/revokeall', environ_base={'USER_ROLES': user}, follow_redirects=True) - self.assertEqual(response.status_code, 302) - result = self.app.get('proxy', environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= '\n '\ - + '\n '\ - + '\n \n \n \n '\ - + '
VoterProxy
\n' - self.assertIn(str.encode(testtext), result.data) - -class ProxyVoteTests(BasicTest): - - def setUp(self): - self.init_test() - global user - user='testuser/vote:* proxyadmin:*' - self.db_sampledata() - - def tearDown(self): - pass - - def test_proxy_vote(self): - voter='testuser' - proxy='User B' - proxyid=2 - proxyuser='User B/vote:*' - - response = self.addProxy(user, proxy, voter) - self.assertEqual(response.status_code, 302) - - motion='g1.20200402.004' - response = self.createVote(user, motion, 'yes', proxyid) - self.assertEqual(response.status_code, 302) - - # testuser view - result = self.app.get('/motion/' + motion, environ_base={'USER_ROLES': user}, follow_redirects=True) - # own vote without change - testtext= '\n'\ - + '\n'\ - + '\n'\ - + '\n
' - self.assertIn(str.encode(testtext), result.data) - # proxy vote with change - testtext= '
\n'\ - + '\n'\ - + '\n'\ - + '\n
\n' - self.assertIn(str.encode(testtext), result.data) - - # User B view - result = self.app.get('/motion/' + motion, environ_base={'USER_ROLES': proxyuser}, follow_redirects=True) - # own vote without change - testtext= '

My vote

\nGiven by testuser\n'\ - + '
\n'\ - + '\n'\ - + '\n'\ - + '\n
' - self.assertIn(str.encode(testtext), result.data) - - # change vote - response = self.createVote(user, motion, 'no', proxyid) - self.assertEqual(response.status_code, 302) - - result = self.app.get('/motion/' + motion, environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= '
\n'\ - + '\n'\ - + '\n'\ - + '\n
\n' - self.assertIn(str.encode(testtext), result.data) - - def test_proxy_vote_no_proxy(self): - voter='testuser' - proxy='User B' - # wrong proxy id - proxyid=3 - - response = self.addProxy(user, proxy, voter) - self.assertEqual(response.status_code, 302) - - motion='g1.20200402.004' - response = self.createVote(user, motion, 'yes', proxyid) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, proxy not found'), response.data) - - # non existing id - proxyid=10000 - - motion='g1.20200402.004' - response = self.createVote(user, motion, 'yes', proxyid) - self.assertEqual(response.status_code, 400) - self.assertIn(str.encode('Error, proxy not found'), response.data) - - def test_proxy_vote_no_voter(self): - voter='User A' - proxy='User B' - proxyid=2 - - response = self.addProxy(user, proxy, voter) - self.assertEqual(response.status_code, 302) - - user1='testuser1/' - motion='g1.20200402.004' - response = self.createVote(user1, motion, 'yes', proxyid) - self.assertEqual(response.status_code, 403) - self.assertIn(str.encode('Forbidden'), response.data) - - if __name__ == "__main__": unittest.main()