summaryrefslogtreecommitdiff
path: root/src/server-tests
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-05-08 22:13:56 +0300
committerLV-426 <lv-426@taproot.org.il>2015-05-12 14:59:05 +0300
commitcc3f28ed63e842b311ae95ec3228a8e9dbb7c425 (patch)
treee7a21c4f6bc837b2c0f394f71fe16a9696098868 /src/server-tests
parentca6431dcfcc149c47f3903635da46d60eceb5ac3 (diff)
test_rz_user: test domain/address signup ACLs
Diffstat (limited to 'src/server-tests')
-rw-r--r--src/server-tests/test_rz_user.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/server-tests/test_rz_user.py b/src/server-tests/test_rz_user.py
new file mode 100644
index 00000000..0ad70063
--- /dev/null
+++ b/src/server-tests/test_rz_user.py
@@ -0,0 +1,56 @@
+import json
+import logging
+import unittest
+
+from rz_config import RZ_Config
+from rz_server import FlaskExt, init_webapp
+from rz_user import rest__user_signup, User_Signup_Request
+from test_util import gen_random_name
+from test_util__pydev import debug__pydev_pd_arg
+
+
+log = logging.getLogger('rhizi')
+
+class Test_RZ_User(unittest.TestCase):
+
+ @classmethod
+ def setUpClass(self):
+ cfg = RZ_Config.generate_default()
+ webapp = init_webapp(cfg, None)
+ webapp.testing = True
+ self.webapp = webapp
+
+ def setUp(self):
+ pass
+
+ def test_user_signup__acl_domain(self):
+
+ self.webapp.rz_config.access_control = True
+ self.webapp.rz_config.mta_port = 50000 # prevent accidental email sending
+ self.webapp.rz_config.acl_wl__email_domain_set = 'a.org, b.org'
+ self.webapp.rz_config.acl_wl__email_address_set_cached = ['alice@foo.bar', 'alice@zoo.bar'] # hack: acl_wl__email_address_set_cached attribute access
+
+ us_req = self.gen_random_user_signup()
+ with self.webapp.test_client() as test_client:
+ for email_address, expected_status_code in [('bob@a.org', 500), # FIXME: use 200, 500 caused by mta_port hack
+ ('bob@b.org', 500), # FIXME: use 200, 500 caused by mta_port hack
+ ('alice@foo.bar', 500),
+ ('bob@c.org', 400)]:
+
+ us_req['email_address'] = email_address
+ req = test_client.post('/signup',
+ content_type='application/json',
+ data=json.dumps(us_req))
+
+ req_data = json.loads(req.data)
+ self.assertEqual(expected_status_code, req.status_code, req_data)
+
+ def tearDown(self):
+ pass
+
+@debug__pydev_pd_arg
+def main():
+ unittest.main(defaultTest='Test_RZ_User.test_user_signup__acl_domain', verbosity=2)
+
+if __name__ == "__main__":
+ main()