diff options
author | Tom Galloway <github@tomgalloway.co.uk> | 2013-01-21 10:30:52 +0000 |
---|---|---|
committer | Tom Galloway <github@tomgalloway.co.uk> | 2013-01-21 10:30:52 +0000 |
commit | c4cddbfc0e42afb8e69dce08b561ac00b0f07b35 (patch) | |
tree | 8063906dc0cae2e2d8cf2e467fe27a9313ccdb34 /tests | |
parent | a312b6d288dc2f978237c1d5e309972d3c873327 (diff) |
Changes to get user management screens started. Updated UserStore to add all expected functions. Added tests for these functions.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_user_store.py | 86 | ||||
-rw-r--r-- | tests/testdata/users.sqlite3 | bin | 0 -> 3072 bytes |
2 files changed, 86 insertions, 0 deletions
diff --git a/tests/test_user_store.py b/tests/test_user_store.py new file mode 100644 index 0000000..e6a3e84 --- /dev/null +++ b/tests/test_user_store.py @@ -0,0 +1,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()
\ No newline at end of file diff --git a/tests/testdata/users.sqlite3 b/tests/testdata/users.sqlite3 Binary files differnew file mode 100644 index 0000000..03782a7 --- /dev/null +++ b/tests/testdata/users.sqlite3 |