]> WPIA git - motion.git/blob - tests/test_user_api.py
1bec464131e1e34529c11e1ce81e9d643e9ce6d6
[motion.git] / tests / test_user_api.py
1 from tests.test_basics import BasicTest
2 import click
3 import motion
4 import postgresql
5
6 from click.testing import CliRunner
7 from motion import create_user
8 from motion import app
9
10 def db_select(self, sql, parameter):
11     with postgresql.open(app.config.get("DATABASE"), user=app.config.get("USER"), password=app.config.get("PASSWORD")) as db:
12         rv = db.prepare(sql)(parameter)
13         return rv
14
15 class GeneralTests(BasicTest):
16
17     def setUp(self):
18         self.init_test()
19
20     def tearDown(self):
21         pass
22     
23
24
25     def test_create_user(self):
26         user = 'John Doe'
27         runner = app.test_cli_runner()
28         result = runner.invoke(create_user, [user])
29         assert result.exit_code == 0
30         self.assertIn("User 'John Doe' inserted.", result.output)
31
32         rv = db_select(self,"SELECT email FROM voter WHERE lower(email)=lower($1)", user)
33         self.assertIn(user, rv[0].get("email"))
34
35         result = runner.invoke(create_user, [user])
36         assert result.exit_code == 0
37         self.assertIn("User 'John Doe' already exists.", result.output)