import requests from wqflask import user_manager from parameterized import parameterized from parametrized_test import ParametrizedTest login_link_text = 'Sign in' logout_link_text = 'Sign out' 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" } user_manager.basic_info = lambda : { "basic_info": "basic" } user_manager.RegisterUser(data) @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) def main(gn2, es): import unittest suite = unittest.TestSuite() suite.addTest(TestLoginLocal(methodName="testLoginNonRegisteredUser", gn2_url=gn2, es_url=es)) suite.addTest(TestLoginLocal(methodName="testLoginWithRegisteredUserBothRememberMeAndImportCollectionsFalse", gn2_url=gn2, es_url=es)) runner = unittest.TextTestRunner() runner.run(suite) if __name__ == "__main__": import sys if len(sys.argv) < 3: raise Exception("Required arguments missing") else: main(sys.argv[1], sys.argv[2])