def test_10_new_smsgateway(self): identifier = "myGW" provider_module = "privacyidea.lib.smsprovider.HttpSMSProvider" \ ".HttpSMSProvider" id = set_smsgateway(identifier, provider_module, description="test", options={ "HTTP_METHOD": "POST", "URL": "http://example.com", "RETURN_SUCCESS": "ID", "text": "{otp}", "phone": "{phone}" }, headers={"Authorization": "QWERTZ"}) self.assertTrue(id > 0) sms = create_sms_instance(identifier) responses.add(responses.POST, "http://example.com", body=self.success_body) # Here we need to send the SMS r = sms.submit_message("123456", "Hello") self.assertTrue(r) delete_smsgateway(identifier)
def test_02_fail(self): # The script returns a failing rcode identifier = "myScriptSMS" config = {"background": SCRIPT_WAIT, "script": "fail.sh"} provider_module = "privacyidea.lib.smsprovider.ScriptSMSProvider" \ ".ScriptSMSProvider" id = set_smsgateway(identifier, provider_module, description="test", options=config) self.assertTrue(id > 0) sms = ScriptSMSProvider(smsgateway=get_smsgateway(identifier)[0], directory=self.directory) self.assertRaises(SMSError, sms.submit_message, "123456", "Hello") delete_smsgateway(identifier)
def test_02_success(self): # the script runs successfully identifier = "myScriptSMS" config = {"background": SCRIPT_WAIT, "script": "success.sh"} provider_module = "privacyidea.lib.smsprovider.ScriptSMSProvider" \ ".ScriptSMSProvider" id = set_smsgateway(identifier, provider_module, description="test", options=config) self.assertTrue(id > 0) sms = ScriptSMSProvider(smsgateway=get_smsgateway(identifier)[0], directory=self.directory) r = sms.submit_message("123456", "Hello") self.assertTrue(r) delete_smsgateway(identifier)
def test_00_errors(self): # No smsgateway defined s = SmppSMSProvider() self.assertRaises(SMSError, s.submit_message, "phone", "message") # No host defined set_smsgateway("missing_host", self.provider_module, options={"SMSC_PORT": "1234"}) p = create_sms_instance(identifier="missing_host") self.assertRaises(SMSError, p.submit_message, "phone", "message") delete_smsgateway("missing_host") # No port defined set_smsgateway("missing_port", self.provider_module, options={"SMSC_HOST": "1.1.1.1"}) p = create_sms_instance(identifier="missing_port") self.assertRaises(SMSError, p.submit_message, "phone", "message") delete_smsgateway("missing_port")
def delete_gateway(identifier=None): """ this function deletes an existing smsgateway definition :param identifier: The name of the sms gateway definition :return: json with success or fail """ res = delete_smsgateway(identifier=identifier) g.audit_object.log({"success": res, "info": identifier}) return send_result(res)
def test_01_fail_no_script(self): # The script does not exist identifier = "myScriptSMS" config = { "background": SCRIPT_WAIT, "script": "sms-script-does-not-exist.sh" } provider_module = "privacyidea.lib.smsprovider.ScriptSMSProvider" \ ".ScriptSMSProvider" id = set_smsgateway(identifier, provider_module, description="test", options=config) self.assertTrue(id > 0) sms = ScriptSMSProvider(smsgateway=get_smsgateway(identifier)[0], directory=self.directory) self.assertRaises(SMSError, sms.submit_message, "123456", "Hello") delete_smsgateway(identifier) # We bail out, fi no smsgateway definition is given! sms = ScriptSMSProvider(directory=self.directory) self.assertRaises(SMSError, sms.submit_message, "123456", "Hello")
def test_10_new_smsgateway(self): identifier = "myGW" provider_module = "privacyidea.lib.smsprovider.HttpSMSProvider" \ ".HttpSMSProvider" id = set_smsgateway(identifier, provider_module, description="test", options={"HTTP_METHOD": "POST", "URL": "http://example.com", "RETURN_SUCCESS": "ID", "text": "{otp}", "phone": "{phone}"}) self.assertTrue(id > 0) sms = create_sms_instance(identifier) responses.add(responses.POST, "http://example.com", body=self.success_body) # Here we need to send the SMS r = sms.submit_message("123456", "Hello") self.assertTrue(r) delete_smsgateway(identifier)
def test_02_create_modify_delete_smsgateway_configuration(self): identifier = "myGW" provider_module = "privacyidea.lib.smsprovider.HTTPSmsPrpvoder" id = set_smsgateway(identifier, provider_module, description="test", options={ "HTTP_METHOD": "POST", "URL": "example.com" }) self.assertTrue(id > 0) gw = get_smsgateway(id=id) self.assertEqual(gw[0].description, "test") # update the description set_smsgateway(identifier, provider_module, description="This is a sensible description") gw = get_smsgateway(id=id) self.assertEqual(gw[0].description, "This is a sensible description") # update some options set_smsgateway(identifier, provider_module, options={ "HTTP_METHOD": "POST", "URL": "example.com", "new key": "value" }) gw = get_smsgateway(id=id) self.assertEqual(len(gw[0].option_dict), 3) self.assertEqual(gw[0].option_dict.get("HTTP_METHOD"), "POST") self.assertEqual(gw[0].option_dict.get("URL"), "example.com") self.assertEqual(gw[0].option_dict.get("new key"), "value") # delete a single option r = delete_smsgateway_option(id, "URL") gw = get_smsgateway(id=id) self.assertEqual(len(gw[0].option_dict), 2) self.assertEqual(gw[0].option_dict.get("HTTP_METHOD"), "POST") self.assertEqual(gw[0].option_dict.get("URL"), None) self.assertEqual(gw[0].option_dict.get("new key"), "value") # finally delete the gateway definition r = delete_smsgateway(identifier) self.assertEqual(r, id) # delete successful? gw = get_smsgateway() self.assertEqual(len(gw), 0)
def test_02_create_modify_delete_smsgateway_configuration(self): identifier = "myGW" provider_module = "privacyidea.lib.smsprovider.HTTPSmsPrpvoder" id = set_smsgateway(identifier, provider_module, description="test", options={"HTTP_METHOD": "POST", "URL": "example.com"}) self.assertTrue(id > 0) gw = get_smsgateway(id=id) self.assertEqual(gw[0].description, "test") # update the description set_smsgateway(identifier, provider_module, description="This is a sensible description") gw = get_smsgateway(id=id) self.assertEqual(gw[0].description, "This is a sensible description") # update some options set_smsgateway(identifier, provider_module, options={"HTTP_METHOD": "POST", "URL": "example.com", "new key": "value"}) gw = get_smsgateway(id=id) self.assertEqual(len(gw[0].option_dict), 3) self.assertEqual(gw[0].option_dict.get("HTTP_METHOD"), "POST") self.assertEqual(gw[0].option_dict.get("URL"), "example.com") self.assertEqual(gw[0].option_dict.get("new key"), "value") # delete a single option r = delete_smsgateway_option(id, "URL") gw = get_smsgateway(id=id) self.assertEqual(len(gw[0].option_dict), 2) self.assertEqual(gw[0].option_dict.get("HTTP_METHOD"), "POST") self.assertEqual(gw[0].option_dict.get("URL"), None) self.assertEqual(gw[0].option_dict.get("new key"), "value") # finally delete the gateway definition r = delete_smsgateway(identifier) self.assertEqual(r, id) # delete successful? gw = get_smsgateway() self.assertEqual(len(gw), 0)
def test_02_create_modify_delete_smsgateway_configuration(self): identifier = "myGW" provider_module = "privacyidea.lib.smsprovider.HttpSMSProvider.HttpSMSProvider" id = set_smsgateway(identifier, provider_module, description="test", options={ "HTTP_METHOD": "POST", "URL": "example.com" }, headers={ "Authorization": "QWERTZ", "BANANA": "will be eaten" }) self.assertTrue(id > 0) gw = get_smsgateway(id=id) self.assertEqual(gw[0].description, "test") # update the description set_smsgateway(identifier, provider_module, description="This is a sensible description") gw = get_smsgateway(id=id) self.assertEqual(gw[0].description, "This is a sensible description") # update some options set_smsgateway(identifier, provider_module, options={ "HTTP_METHOD": "POST", "URL": "example.com", "IDENTICAL_KEY": "new option" }, headers={ "Authorization": "ValueChanged", "IDENTICAL_KEY": "new header", "URL": "URL_in_headers" }) gw = get_smsgateway(id=id) self.assertEqual(len(gw[0].option_dict), 3) self.assertEqual(gw[0].option_dict.get("HTTP_METHOD"), "POST") self.assertEqual(gw[0].option_dict.get("URL"), "example.com") self.assertEqual(gw[0].option_dict.get("IDENTICAL_KEY"), "new option") self.assertEqual(gw[0].header_dict.get("Authorization"), "ValueChanged") self.assertEqual(gw[0].header_dict.get("BANANA"), None) self.assertEqual(gw[0].header_dict.get("IDENTICAL_KEY"), "new header") self.assertEqual(gw[0].header_dict.get("URL"), "URL_in_headers") # delete a single option r = delete_smsgateway_option(id, "URL") gw = get_smsgateway(id=id) self.assertEqual(len(gw[0].option_dict), 2) self.assertEqual(gw[0].option_dict.get("HTTP_METHOD"), "POST") self.assertEqual(gw[0].option_dict.get("URL"), None) self.assertEqual(gw[0].option_dict.get("IDENTICAL_KEY"), "new option") # delete a single header r = delete_smsgateway_header(id, "IDENTICAL_KEY") gw = get_smsgateway(id=id) self.assertEqual(gw[0].header_dict.get("IDENTICAL_KEY"), None) # delete a single header via generic function r = delete_smsgateway_key_generic(id, "URL", Type="header") gw = get_smsgateway(id=id) self.assertEqual(gw[0].header_dict.get("URL"), None) # finally delete the gateway definition r = delete_smsgateway(identifier) self.assertEqual(r, id) # delete successful? gw = get_smsgateway() self.assertEqual(len(gw), 0)