X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Ftest_motion.py;h=1bc65858461318e377cf8660479502895cf80cff;hb=66a7e727089249cd3eeea99c2aead5fb6a9550ce;hp=6ec2e1bef57e068585ada4f9d0c89005bc1c96a6;hpb=301d8033d5489c65bde7df0f32013983647ff0da;p=motion.git diff --git a/tests/test_motion.py b/tests/test_motion.py index 6ec2e1b..1bc6585 100644 --- a/tests/test_motion.py +++ b/tests/test_motion.py @@ -8,11 +8,23 @@ from datetime import datetime app.config.update( DEBUGUSER = {}, GROUP_PREFIX = {'127.0.0.1:5000': {'group1': 'g1', 'group2': 'g2'}}, - DURATION = {'127.0.0.1:5000':[3, 7, 14]} + DURATION = {'127.0.0.1:5000':[3, 7, 14]}, + SERVER_NAME = '127.0.0.1:5000' ) +app.config['TESTING'] = True +app.config['DEBUG'] = False + + class BasicTest(TestCase): + def init_test(self): + self.app = app.test_client() + self.assertEqual(app.debug, False) + + # reset database + self.db_clear() + # functions to manipulate motions def createVote(self, user, motion, vote): return self.app.post( @@ -36,6 +48,12 @@ class BasicTest(TestCase): data=dict(reason=reason) ) + def finishMotion(self, user, motion): + return self.app.post( + '/motion/' + motion +'/finish', + environ_base={'USER_ROLES': user} + ) + def buildResultText(self, motiontext, yes, no, abstain): return '

'+motiontext+'

\n

\nYes '+str(yes)+'
'\ + '\nNo '+str(no)+'
'\ @@ -55,35 +73,27 @@ class BasicTest(TestCase): # no specific rights required class GeneralTests(BasicTest): - + def setUp(self): - app.config['TESTING'] = True - app.config['DEBUG'] = False - app.config.update(SERVER_NAME="127.0.0.1:5000") + self.init_test() global user user = 'testuser/' - # reset database - self.db_clear() self.db_sampledata() - self.app = app.test_client() - self.assertEqual(app.debug, False) - def tearDown(self): pass def test_main_page(self): response = self.app.get('/', environ_base={'USER_ROLES': user}, follow_redirects=True) self.assertEqual(response.status_code, 200) - + def test_basic_results_data(self): result = self.app.get('/', environ_base={'USER_ROLES': user}, follow_redirects=True) - - #self.assertIn(str.encode('User: testuser'), result.data) - testtext= '

\n
'\ + '\n Motion C (Canceled)\n group1'\ - + '\n
# g1.20200402.003
'\ + + '\n
# g1.20200402.003'\ + + '\n Result'\ + + '\n
'\ + '\n
\n
Proposed: 2020-04-02 21:47:24 (UTC) by User A
'\ + '\n
Canceled: 2020-04-03 21:48:24 (UTC) by User A
\n
'\ + '\n
\n

A third motion

'\ @@ -94,7 +104,9 @@ class GeneralTests(BasicTest): self.assertIn(str.encode(testtext), result.data) testtext= '
\n
'\ + '\n Motion B (Finished)\n group1'\ - + '\n
# g1.20200402.002
'\ + + '\n
# g1.20200402.002'\ + + '\n Result'\ + + '\n
'\ + '\n
\n
Proposed: 2020-04-02 21:41:26 (UTC) by User A
'\ + '\n
Votes until: 2020-04-04 21:41:26 (UTC)
\n
'\ + '\n
\n

A second motion

'\ @@ -104,7 +116,9 @@ class GeneralTests(BasicTest): self.assertIn(str.encode(testtext), result.data) testtext= '
\n
'\ + '\n Motion A (Finished)\n group1'\ - + '\n '\ + + '\n
# g1.20200402.001'\ + + '\n Result'\ + + '\n
'\ + '\n
\n
Proposed: 2020-04-02 21:40:33 (UTC) by User A
'\ + '\n
Votes until: 2020-04-02 21:40:33 (UTC)
\n
'\ + '\n
\n

My special motion

'\ @@ -121,11 +135,11 @@ class GeneralTests(BasicTest): self.assertIn(str.encode(testtext), result.data) testtext= 'id=\"motion-1\">' self.assertIn(str.encode(testtext), result.data) - + def test_basic_results_data_details(self): motion='g1.20200402.002' result = self.app.get('/motion/' + motion, environ_base={'USER_ROLES': user}, follow_redirects=True) - testtext= '

A second motion

\n
\n
\nBack\n' + testtext= '

A second motion

\n
\n
\nBack' self.assertIn(str.encode(testtext), result.data) def test_vote(self): @@ -149,27 +163,28 @@ class GeneralTests(BasicTest): testtext= 'id=\"motion-3\">' self.assertIn(str.encode(testtext), result.data) + def test_basic_results_data_details_not_given(self): + motion='g1.30190402.001' + result = self.app.get('/motion/' + motion, environ_base={'USER_ROLES': user}, follow_redirects=True) + self.assertEqual(result.status_code, 404) + self.assertIn(str.encode('Error, Not found'), result.data) + + class VoterTests(BasicTest): + def setUp(self): - app.config['TESTING'] = True - app.config['DEBUG'] = False - app.config.update(SERVER_NAME="127.0.0.1:5000") + self.init_test() global user user='testuser/vote:*' - # reset database - self.db_clear() self.db_sampledata() - self.app = app.test_client() - self.assertEqual(app.debug, False) - def tearDown(self): pass def test_main_page(self): response = self.app.get('/', environ_base={'USER_ROLES': user}, follow_redirects=True) self.assertEqual(response.status_code, 200) - + def test_home_data(self): result = self.app.get('/', environ_base={'USER_ROLES': user}) self.assertNotIn("