summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTom Galloway <github@tomgalloway.co.uk>2013-01-21 10:30:52 +0000
committerTom Galloway <github@tomgalloway.co.uk>2013-01-21 10:30:52 +0000
commitc4cddbfc0e42afb8e69dce08b561ac00b0f07b35 (patch)
tree8063906dc0cae2e2d8cf2e467fe27a9313ccdb34 /tests
parenta312b6d288dc2f978237c1d5e309972d3c873327 (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.py86
-rw-r--r--tests/testdata/users.sqlite3bin0 -> 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
new file mode 100644
index 0000000..03782a7
--- /dev/null
+++ b/tests/testdata/users.sqlite3
Binary files differ