aboutsummaryrefslogtreecommitdiff
path: root/test/requests
diff options
context:
space:
mode:
Diffstat (limited to 'test/requests')
-rw-r--r--test/requests/parametrized_test.py32
-rwxr-xr-xtest/requests/test-website.py1
-rw-r--r--test/requests/test_forgot_password.py50
-rw-r--r--test/requests/test_login_github.py47
-rw-r--r--test/requests/test_login_local.py57
-rw-r--r--test/requests/test_login_orcid.py47
-rw-r--r--test/requests/test_registration.py36
7 files changed, 15 insertions, 255 deletions
diff --git a/test/requests/parametrized_test.py b/test/requests/parametrized_test.py
deleted file mode 100644
index 50003850..00000000
--- a/test/requests/parametrized_test.py
+++ /dev/null
@@ -1,32 +0,0 @@
-import logging
-import unittest
-from wqflask import app
-from utility.elasticsearch_tools import get_elasticsearch_connection, get_user_by_unique_column
-from elasticsearch import Elasticsearch, TransportError
-
-class ParametrizedTest(unittest.TestCase):
-
- def __init__(self, methodName='runTest', gn2_url="http://localhost:5003", es_url="localhost:9200"):
- super(ParametrizedTest, self).__init__(methodName=methodName)
- self.gn2_url = gn2_url
- self.es_url = es_url
-
- def setUp(self):
- self.es = get_elasticsearch_connection()
- self.es_cleanup = []
-
- es_logger = logging.getLogger("elasticsearch")
- es_logger.setLevel(app.config.get("LOG_LEVEL"))
- es_logger.addHandler(
- logging.FileHandler("/tmp/es_TestRegistrationInfo.log"))
- es_trace_logger = logging.getLogger("elasticsearch.trace")
- es_trace_logger.addHandler(
- logging.FileHandler("/tmp/es_TestRegistrationTrace.log"))
-
- def tearDown(self):
- from time import sleep
- self.es.delete_by_query(
- index="users"
- , doc_type="local"
- , body={"query":{"match":{"email_address":"test@user.com"}}})
- sleep(1)
diff --git a/test/requests/test-website.py b/test/requests/test-website.py
index 8bfb47c2..d619a7d5 100755
--- a/test/requests/test-website.py
+++ b/test/requests/test-website.py
@@ -43,7 +43,6 @@ def dummy(args_obj, parser):
def integration_tests(args_obj, parser):
gn2_url = args_obj.host
- es_url = app.config.get("ELASTICSEARCH_HOST")+":"+str(app.config.get("ELASTICSEARCH_PORT"))
run_integration_tests(gn2_url, es_url)
def initTest(klass, gn2_url, es_url):
diff --git a/test/requests/test_forgot_password.py b/test/requests/test_forgot_password.py
deleted file mode 100644
index 346524bc..00000000
--- a/test/requests/test_forgot_password.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import requests
-from utility.elasticsearch_tools import get_user_by_unique_column
-from parameterized import parameterized
-from parametrized_test import ParametrizedTest
-
-passwork_reset_link = ''
-forgot_password_page = None
-
-class TestForgotPassword(ParametrizedTest):
-
- def setUp(self):
- super(TestForgotPassword, self).setUp()
- self.forgot_password_url = self.gn2_url+"/n/forgot_password_submit"
- def send_email(to_addr, msg, fromaddr="no-reply@genenetwork.org"):
- print("CALLING: send_email_mock()")
- email_data = {
- "to_addr": to_addr
- , "msg": msg
- , "fromaddr": from_addr}
-
- data = {
- "es_connection": self.es,
- "email_address": "test@user.com",
- "full_name": "Test User",
- "organization": "Test Organisation",
- "password": "test_password",
- "password_confirm": "test_password"
- }
-
-
- def testWithoutEmail(self):
- data = {"email_address": ""}
- error_notification = '<div class="alert alert-danger">You MUST provide an email</div>'
- result = requests.post(self.forgot_password_url, data=data)
- self.assertEqual(result.url, self.gn2_url+"/n/forgot_password")
- self.assertTrue(
- result.content.find(error_notification) >= 0
- , "Error message should be displayed but was not")
-
- def testWithNonExistingEmail(self):
- # Monkey patching doesn't work, so simply test that getting by email
- # returns the correct data
- user = get_user_by_unique_column(self.es, "email_address", "non-existent@domain.com")
- self.assertTrue(user is None, "Should not find non-existent user")
-
- def testWithExistingEmail(self):
- # Monkey patching doesn't work, so simply test that getting by email
- # returns the correct data
- user = get_user_by_unique_column(self.es, "email_address", "test@user.com")
- self.assertTrue(user is not None, "Should find user")
diff --git a/test/requests/test_login_github.py b/test/requests/test_login_github.py
deleted file mode 100644
index 1bf4f695..00000000
--- a/test/requests/test_login_github.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import uuid
-import requests
-from time import sleep
-from wqflask import app
-from parameterized import parameterized
-from parametrized_test import ParametrizedTest
-
-login_link_text = '<a id="login_in" href="/n/login">Sign in</a>'
-logout_link_text = '<a id="login_out" title="Signed in as ." href="/n/logout">Sign out</a>'
-uid = str(uuid.uuid4())
-
-class TestLoginGithub(ParametrizedTest):
-
- def setUp(self):
- super(TestLoginGithub, self).setUp()
- data = {
- "user_id": uid
- , "name": "A. T. Est User"
- , "github_id": 693024
- , "user_url": "https://fake-github.com/atestuser"
- , "login_type": "github"
- , "organization": ""
- , "active": 1
- , "confirmed": 1
- }
- self.es.create(index="users", doc_type="local", body=data, id=uid)
- sleep(1)
-
- def tearDown(self):
- super(TestLoginGithub, self).tearDown()
- self.es.delete(index="users", doc_type="local", id=uid)
-
- def testLoginUrl(self):
- login_button_text = '<a href="https://github.com/login/oauth/authorize?client_id=' + app.config.get("GITHUB_CLIENT_ID") + '&amp;client_secret=' + app.config.get("GITHUB_CLIENT_SECRET") + '" title="Login with GitHub" class="btn btn-info btn-group">Login with Github</a>'
- result = requests.get(self.gn2_url+"/n/login")
- index = result.content.find(login_button_text)
- self.assertTrue(index >= 0, "Should have found `Login with Github` button")
-
- @parameterized.expand([
- ("1234", login_link_text, "Login should have failed with non-existing user")
- , (uid, logout_link_text, "Login should have been successful with existing user")
- ])
- def testLogin(self, test_uid, expected, message):
- url = self.gn2_url+"/n/login?type=github&uid="+test_uid
- result = requests.get(url)
- index = result.content.find(expected)
- self.assertTrue(index >= 0, message)
diff --git a/test/requests/test_login_local.py b/test/requests/test_login_local.py
deleted file mode 100644
index 6691d135..00000000
--- a/test/requests/test_login_local.py
+++ /dev/null
@@ -1,57 +0,0 @@
-import requests
-from parameterized import parameterized
-from parametrized_test import ParametrizedTest
-
-login_link_text = '<a id="login_in" href="/n/login">Sign in</a>'
-logout_link_text = '<a id="login_out" title="Signed in as ." href="/n/logout">Sign out</a>'
-
-class TestLoginLocal(ParametrizedTest):
-
- def setUp(self):
- super(TestLoginLocal, self).setUp()
- self.login_url = self.gn2_url +"/n/login"
- data = {
- "es_connection": self.es,
- "email_address": "test@user.com",
- "full_name": "Test User",
- "organization": "Test Organisation",
- "password": "test_password",
- "password_confirm": "test_password"
- }
-
-
- @parameterized.expand([
- (
- {
- "email_address": "non@existent.email",
- "password": "doesitmatter?"
- }, login_link_text, "Login should have failed with the wrong user details."),
- (
- {
- "email_address": "test@user.com",
- "password": "test_password"
- }, logout_link_text, "Login should have been successful with correct user details and neither import_collections nor remember_me set"),
- (
- {
- "email_address": "test@user.com",
- "password": "test_password",
- "import_collections": "y"
- }, logout_link_text, "Login should have been successful with correct user details and only import_collections set"),
- (
- {
- "email_address": "test@user.com",
- "password": "test_password",
- "remember_me": "y"
- }, logout_link_text, "Login should have been successful with correct user details and only remember_me set"),
- (
- {
- "email_address": "test@user.com",
- "password": "test_password",
- "remember_me": "y",
- "import_collections": "y"
- }, logout_link_text, "Login should have been successful with correct user details, and both remember_me, and import_collections set")
- ])
- def testLogin(self, data, expected, message):
- result = requests.post(self.login_url, data=data)
- index = result.content.find(expected)
- self.assertTrue(index >= 0, message)
diff --git a/test/requests/test_login_orcid.py b/test/requests/test_login_orcid.py
deleted file mode 100644
index ea15642e..00000000
--- a/test/requests/test_login_orcid.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import uuid
-import requests
-from time import sleep
-from wqflask import app
-from parameterized import parameterized
-from parametrized_test import ParametrizedTest
-
-login_link_text = '<a id="login_in" href="/n/login">Sign in</a>'
-logout_link_text = '<a id="login_out" title="Signed in as ." href="/n/logout">Sign out</a>'
-uid = str(uuid.uuid4())
-
-class TestLoginOrcid(ParametrizedTest):
-
- def setUp(self):
- super(TestLoginOrcid, self).setUp()
- data = {
- "user_id": uid
- , "name": "A. T. Est User"
- , "orcid": 345872
- , "user_url": "https://fake-orcid.org/atestuser"
- , "login_type": "orcid"
- , "organization": ""
- , "active": 1
- , "confirmed": 1
- }
- self.es.create(index="users", doc_type="local", body=data, id=uid)
- sleep(1)
-
- def tearDown(self):
- super(TestLoginOrcid, self).tearDown()
- self.es.delete(index="users", doc_type="local", id=uid)
-
- def testLoginUrl(self):
- login_button_text = 'a href="https://sandbox.orcid.org/oauth/authorize?response_type=code&amp;scope=/authenticate&amp;show_login=true&amp;client_id=' + app.config.get("ORCID_CLIENT_ID") + '&amp;client_secret=' + app.config.get("ORCID_CLIENT_SECRET") + '" title="Login with ORCID" class="btn btn-info btn-group">Login with ORCID</a>'
- result = requests.get(self.gn2_url+"/n/login")
- index = result.content.find(login_button_text)
- self.assertTrue(index >= 0, "Should have found `Login with ORCID` button")
-
- @parameterized.expand([
- ("1234", login_link_text, "Login should have failed with non-existing user")
- , (uid, logout_link_text, "Login should have been successful with existing user")
- ])
- def testLogin(self, test_uid, expected, message):
- url = self.gn2_url+"/n/login?type=orcid&uid="+test_uid
- result = requests.get(url)
- index = result.content.find(expected)
- self.assertTrue(index >= 0, message)
diff --git a/test/requests/test_registration.py b/test/requests/test_registration.py
index 0047e8a6..5d08bf58 100644
--- a/test/requests/test_registration.py
+++ b/test/requests/test_registration.py
@@ -1,31 +1,25 @@
import sys
import requests
-from parametrized_test import ParametrizedTest
class TestRegistration(ParametrizedTest):
- def tearDown(self):
- for item in self.es_cleanup:
- self.es.delete(index="users", doc_type="local", id=item["_id"])
def testRegistrationPage(self):
- if self.es.ping():
- data = {
- "email_address": "test@user.com",
- "full_name": "Test User",
- "organization": "Test Organisation",
- "password": "test_password",
- "password_confirm": "test_password"
- }
- requests.post(self.gn2_url+"/n/register", data)
- response = self.es.search(
- index="users"
- , doc_type="local"
- , body={
- "query": {"match": {"email_address": "test@user.com"}}})
- self.assertEqual(len(response["hits"]["hits"]), 1)
- else:
- self.skipTest("The elasticsearch server is down")
+ data = {
+ "email_address": "test@user.com",
+ "full_name": "Test User",
+ "organization": "Test Organisation",
+ "password": "test_password",
+ "password_confirm": "test_password"
+ }
+ requests.post(self.gn2_url+"/n/register", data)
+ response = self.es.search(
+ index="users"
+ , doc_type="local"
+ , body={
+ "query": {"match": {"email_address": "test@user.com"}}})
+ self.assertEqual(len(response["hits"]["hits"]), 1)
+
def main(gn2, es):
import unittest