aboutsummaryrefslogtreecommitdiff
path: root/wqflask/tests
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask/tests')
-rw-r--r--wqflask/tests/__init__.py0
-rw-r--r--wqflask/tests/es_double.py30
-rw-r--r--wqflask/tests/test_registration.py113
3 files changed, 143 insertions, 0 deletions
diff --git a/wqflask/tests/__init__.py b/wqflask/tests/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/wqflask/tests/__init__.py
diff --git a/wqflask/tests/es_double.py b/wqflask/tests/es_double.py
new file mode 100644
index 00000000..00739016
--- /dev/null
+++ b/wqflask/tests/es_double.py
@@ -0,0 +1,30 @@
+class ESDouble(object):
+ def __init__(self):
+ self.items = {
+ "users": {
+ "local": []
+ }}
+
+ def ping(self):
+ return true
+
+ def create(self, index, doc_type, body, id):
+ item = {"id": id, "_source": body}
+ if not self.items.get("index", None):
+ self.items[index] = {doc_type: [item]}
+ else:
+ self.items[index][doc_type].append(item)
+
+ def search(self, index, doc_type, body):
+ d = body["query"]["match"]
+ column = [(key, d[key]) for key in d]
+
+ items = []
+ for thing in self.items[index][doc_type]:
+ if thing["_source"][column[0][0]] == column[0][1]:
+ items.append(thing)
+ break
+ return {
+ "hits": {
+ "hits": items
+ }}
diff --git a/wqflask/tests/test_registration.py b/wqflask/tests/test_registration.py
new file mode 100644
index 00000000..50a2a84c
--- /dev/null
+++ b/wqflask/tests/test_registration.py
@@ -0,0 +1,113 @@
+import unittest
+import es_double
+import wqflask.user_manager
+from wqflask.user_manager import RegisterUser
+
+class TestRegisterUser(unittest.TestCase):
+ def setUp(self):
+ # Mock elasticsearch
+ self.es = es_double.ESDouble()
+
+ # Patch method
+ wqflask.user_manager.basic_info = lambda : {"basic_info": "some info"}
+
+ def tearDown(self):
+ self.es = None
+
+ def testRegisterUserWithNoData(self):
+ data = {}
+ result = RegisterUser(data)
+ self.assertNotEqual(len(result.errors), 0, "Data was not provided. Error was expected")
+
+ def testRegisterUserWithNoEmail(self):
+ data = {
+ "email_address": ""
+ , "full_name": "A.N. Other"
+ , "organization": "Some Organisation"
+ , "password": "testing"
+ , "password_confirm": "testing"
+ , "es_connection": self.es
+ }
+
+ result = RegisterUser(data)
+ self.assertNotEqual(len(result.errors), 0, "Email not provided. Error was expected")
+
+ def testRegisterUserWithNoName(self):
+ data = {
+ "email_address": "user@example.com"
+ , "full_name": ""
+ , "organization": "Some Organisation"
+ , "password": "testing"
+ , "password_confirm": "testing"
+ , "es_connection": self.es
+ }
+
+ result = RegisterUser(data)
+ self.assertNotEqual(len(result.errors), 0, "Name not provided. Error was expected")
+
+ def testRegisterUserWithNoOrganisation(self):
+ data = {
+ "email_address": "user@example.com"
+ , "full_name": "A.N. Other"
+ , "organization": ""
+ , "password": "testing"
+ , "password_confirm": "testing"
+ , "es_connection": self.es
+ }
+
+ result = RegisterUser(data)
+ self.assertEqual(len(result.errors), 0, "Organisation not provided. Error not expected")
+
+ def testRegisterUserWithShortOrganisation(self):
+ data = {
+ "email_address": "user@example.com"
+ , "full_name": "A.N. Other"
+ , "organization": "SO"
+ , "password": "testing"
+ , "password_confirm": "testing"
+ , "es_connection": self.es
+ }
+
+ result = RegisterUser(data)
+ self.assertNotEqual(len(result.errors), 0, "Organisation name too short. Error expected")
+
+ def testRegisterUserWithNoPassword(self):
+ data = {
+ "email_address": "user@example.com"
+ , "full_name": "A.N. Other"
+ , "organization": "Some Organisation"
+ , "password": None
+ , "password_confirm": None
+ , "es_connection": self.es
+ }
+
+ result = RegisterUser(data)
+ self.assertNotEqual(len(result.errors), 0, "Password not provided. Error was expected")
+
+ def testRegisterUserWithNonMatchingPasswords(self):
+ data = {
+ "email_address": "user@example.com"
+ , "full_name": "A.N. Other"
+ , "organization": "Some Organisation"
+ , "password": "testing"
+ , "password_confirm": "stilltesting"
+ , "es_connection": self.es
+ }
+
+ result = RegisterUser(data)
+ self.assertNotEqual(len(result.errors), 0, "Password mismatch. Error was expected")
+
+ def testRegisterUserWithCorrectData(self):
+ data = {
+ "email_address": "user@example.com"
+ , "full_name": "A.N. Other"
+ , "organization": "Some Organisation"
+ , "password": "testing"
+ , "password_confirm": "testing"
+ , "es_connection": self.es
+ }
+ result = RegisterUser(data)
+ self.assertEqual(len(result.errors), 0, "All data items provided. Errors were not expected")
+
+if __name__ == "__main__":
+ unittest.main()