summaryrefslogtreecommitdiff
path: root/tests/test_user_store.py
blob: e6a3e8433b2943935eebf11ab28c4385d51d69f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#! /usr/bin/env python
# -*- mode: python; mode: auto-fill; fill-column: 80 -*-

import user_store
from logger import Logger
import cfg
import unittest
import cherrypy
import plugin_mount
import os
from model import User
cfg.log = Logger()

cherrypy.log.access_file = None

class UserStore(unittest.TestCase):
    """Test each function of user_store to confirm they work as expected"""

    def setUp(self):
        cfg.user_db = os.path.join(cfg.file_root, "tests/testdata/users");
        self.userstore = plugin_mount.UserStoreModule.get_plugins()[0]

    def tearDown(self):
        for user in self.userstore.get_all():
            self.userstore.remove(user[0])
        self.userstore.close()
        
    def test_user_does_not_exist(self):
        self.assertEqual(self.userstore.exists("notausername"),False)

    def test_user_does_exist(self):
        self.add_user("isausername", False)
        self.assertEqual(self.userstore.exists("isausername"),True)

    def test_add_user(self):
        self.assertEqual(len(self.userstore.items()),0)
        self.add_user("test_user", False)
        self.assertEqual(len(self.userstore.items()),1)

    def test_user_is_in_expert_group(self):
        self.add_user("test_user", True)
        self.assertEqual(self.userstore.expert("test_user"),True)

    def test_user_is_not_in_expert_group(self):
        self.add_user("test_user", False)
        self.assertEqual(self.userstore.expert("test_user"),False)

    def test_user_removal(self):
        self.assertEqual(len(self.userstore.items()),0)
        self.add_user("test_user", False)
        self.assertEqual(len(self.userstore.items()),1)
        self.userstore.remove("test_user")
        self.assertEqual(len(self.userstore.items()),0)

    def test_get_user_email_attribute(self):
        self.add_user("test_user", False,"test@home")
        self.assertEqual(self.userstore.attr("test_user","email"),"test@home")

    def test_get_user(self):
        test_user = self.add_user("test_user", False)
        self.assertEqual(self.userstore.get("test_user"),test_user)

    def test_get_all_users(self):
        self.add_user("test_user1", False)
        self.add_user("test_user2", False)
        self.assertEqual(len(self.userstore.get_all()),2)

    def add_user(self, test_username, add_to_expert_group, email=''):
        test_user = self.create_user(test_username, email)
        if add_to_expert_group:
            test_user = self.add_user_to_expert_group(test_user)
        self.userstore.set(test_username,test_user)
        return test_user

    def create_user(self, username, email=''):
        test_user = User()
        test_user["username"] = username
        test_user["email"] = email
        return test_user

    def add_user_to_expert_group(self, user):
        user["groups"] = ["expert"]
        return user

if __name__ == "__main__":
    unittest.main()