]> WPIA git - motion.git/blob - tests/test_user_api.py
add: adjust user handling per host
[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
11 def db_select2(self, sql, parameter, parameter2):
12     with self.open_DB() as db:
13         rv = db.prepare(sql)(parameter, parameter2)
14         return rv
15
16 class GeneralTests(BasicTest):
17
18     def setUp(self):
19         self.init_test()
20
21     def tearDown(self):
22         pass
23     
24
25
26     def test_create_user(self):
27         user = 'John Doe'
28         host= app.config.get("DEFAULT_HOST")
29         runner = app.test_cli_runner()
30         result = runner.invoke(create_user, (user, host))
31         assert result.exit_code == 0
32         self.assertIn("User 'John Doe' inserted to %s." % host, result.output)
33
34         rv = db_select2(self,"SELECT email FROM voter WHERE lower(email)=lower($1) AND host=$2", user, host)
35         self.assertIn(user, rv[0].get("email"))
36
37         result = runner.invoke(create_user, (user, host))
38         assert result.exit_code == 0
39         self.assertIn("User 'John Doe' already exists on %s." % host, result.output)
40
41         # test with second host
42         host= '127.0.0.1:5001'
43         runner = app.test_cli_runner()
44         result = runner.invoke(create_user, (user, host))
45         assert result.exit_code == 0
46         self.assertIn("User 'John Doe' inserted to 127.0.0.1:5001.", result.output)
47
48         rv = db_select2(self,"SELECT email FROM voter WHERE lower(email)=lower($1) AND host=$2", user, host)
49         self.assertIn(user, rv[0].get("email"))
50
51         result = runner.invoke(create_user, (user, host))
52         assert result.exit_code == 0
53         self.assertIn("User 'John Doe' already exists on 127.0.0.1:5001.", result.output)