Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
    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")
Exemplo n.º 5
0
    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")
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
    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")
Exemplo n.º 9
0
    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)
Exemplo n.º 10
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)
Exemplo n.º 11
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)
Exemplo n.º 12
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)