示例#1
0
文件: gateway.py 项目: rkday/crest
    def setUp(self, stack, HSSPeerListener, HSSAppListener):
        unittest.TestCase.setUp(self)

        self.dstack = mock.MagicMock()
        stack.Stack.return_value = self.dstack
        self.peer_listener = mock.MagicMock()
        HSSPeerListener.return_value = self.peer_listener
        self.app_listener = mock.MagicMock()
        HSSAppListener.return_value = self.app_listener

        settings.PASSWORD_ENCRYPTION_KEY = "TOPSECRET"
        settings.HSS_ENABLED = True
        settings.HSS_IP = "example.com"
        settings.HSS_PORT = 3868
        self.gateway = HSSGateway()
示例#2
0
文件: gateway.py 项目: rkday/crest
    def setUp(self, stack, HSSPeerListener, HSSAppListener):
        unittest.TestCase.setUp(self)

        self.dstack = mock.MagicMock()
        stack.Stack.return_value = self.dstack
        self.peer_listener = mock.MagicMock()
        HSSPeerListener.return_value = self.peer_listener
        self.app_listener = mock.MagicMock()
        HSSAppListener.return_value = self.app_listener

        settings.PASSWORD_ENCRYPTION_KEY = "TOPSECRET"
        settings.HSS_ENABLED = True
        settings.HSS_IP = "example.com"
        settings.HSS_PORT = 3868
        self.gateway = HSSGateway()
示例#3
0
文件: gateway.py 项目: rkday/crest
class TestHSSGateway(unittest.TestCase):
    """
    Detailed, isolated unit tests of the HSSGateway class.
    """
    @mock.patch("metaswitch.crest.api.homestead.hss.gateway.HSSAppListener")
    @mock.patch("metaswitch.crest.api.homestead.hss.gateway.HSSPeerListener")
    @mock.patch("diameter.stack")
    def setUp(self, stack, HSSPeerListener, HSSAppListener):
        unittest.TestCase.setUp(self)

        self.dstack = mock.MagicMock()
        stack.Stack.return_value = self.dstack
        self.peer_listener = mock.MagicMock()
        HSSPeerListener.return_value = self.peer_listener
        self.app_listener = mock.MagicMock()
        HSSAppListener.return_value = self.app_listener

        settings.PASSWORD_ENCRYPTION_KEY = "TOPSECRET"
        settings.HSS_ENABLED = True
        settings.HSS_IP = "example.com"
        settings.HSS_PORT = 3868
        self.gateway = HSSGateway()

    def test_hss_enabled(self):
        settings.HSS_ENABLED = False
        self.assertRaises(HSSNotEnabled, HSSGateway)

    # There is a fair amount of code here, for testing what is essentially a
    # pretty simple function. The verbosity comes from correctly mocking out
    # the deferred inlineCallbacks decorated functions, which are inherently
    # more complex than standard functions - even if they appear similar.
    # These tests also act as a good example of testing inlineCallback functions,
    # with the same techniques applied to more complicated functions later
    def test_get_digest(self):
        self.peer_listener.fetch_multimedia_auth.return_value = defer.Deferred()
        get_deferred = self.gateway.get_digest("priv", "pub")
        self.peer_listener.fetch_multimedia_auth.assert_called_once_with("priv", "pub")
        get_callback = mock.MagicMock()
        get_deferred.addCallback(get_callback)
        self.peer_listener.fetch_multimedia_auth.return_value.callback("digest")
        self.assertEquals(get_callback.call_args[0][0], "digest")

    def test_get_digest_not_found(self):
        self.peer_listener.fetch_multimedia_auth.return_value = defer.Deferred()
        get_deferred = self.gateway.get_digest("priv", "pub")
        self.peer_listener.fetch_multimedia_auth.assert_called_once_with("priv", "pub")
        get_errback = mock.MagicMock()
        get_deferred.addErrback(get_errback)
        self.peer_listener.fetch_multimedia_auth.return_value.errback(HSSNotFound())
        self.assertEquals(get_errback.call_args[0][0].type, HSSNotFound)

    def test_get_ifc(self):
        self.peer_listener.fetch_server_assignment.return_value = defer.Deferred()
        get_deferred = self.gateway.get_ifc("priv", "pub")
        self.peer_listener.fetch_server_assignment.assert_called_once_with("priv", "pub")
        get_callback = mock.MagicMock()
        get_deferred.addCallback(get_callback)
        # server_assignmetn returns both the public ids and the iFC. We only care about the iFC
        self.peer_listener.fetch_server_assignment.return_value.callback(([], "ifc"))
        self.assertEquals(get_callback.call_args[0][0], "ifc")

    def test_get_ifc_not_found(self):
        self.peer_listener.fetch_server_assignment.return_value = defer.Deferred()
        get_deferred = self.gateway.get_ifc("priv", "pub")
        self.peer_listener.fetch_server_assignment.assert_called_once_with("priv", "pub")
        get_errback = mock.MagicMock()
        get_deferred.addErrback(get_errback)
        self.peer_listener.fetch_server_assignment.return_value.errback(HSSNotFound())
        self.assertEquals(get_errback.call_args[0][0].type, HSSNotFound)

    def test_get_public_ids(self):
        self.peer_listener.fetch_server_assignment.return_value = defer.Deferred()
        get_deferred = self.gateway.get_public_ids("priv", "pub")
        self.peer_listener.fetch_server_assignment.assert_called_once_with("priv", "pub")
        get_callback = mock.MagicMock()
        get_deferred.addCallback(get_callback)
        # server_assignmetn returns both the public ids and the iFC. We only care about the ids
        self.peer_listener.fetch_server_assignment.return_value.callback((["pub1", "pub2"], "ifc"))
        self.assertEquals(get_callback.call_args[0][0], ["pub1", "pub2"])

    def test_get_public_ids_not_found(self):
        self.peer_listener.fetch_server_assignment.return_value = defer.Deferred()
        get_deferred = self.gateway.get_public_ids("priv", "pub")
        self.peer_listener.fetch_server_assignment.assert_called_once_with("priv", "pub")
        get_errback = mock.MagicMock()
        get_deferred.addErrback(get_errback)
        self.peer_listener.fetch_server_assignment.return_value.errback(HSSNotFound())
        self.assertEquals(get_errback.call_args[0][0].type, HSSNotFound)
示例#4
0
文件: gateway.py 项目: rkday/crest
class TestHSSGateway(unittest.TestCase):
    """
    Detailed, isolated unit tests of the HSSGateway class.
    """
    @mock.patch("metaswitch.crest.api.homestead.hss.gateway.HSSAppListener")
    @mock.patch("metaswitch.crest.api.homestead.hss.gateway.HSSPeerListener")
    @mock.patch("diameter.stack")
    def setUp(self, stack, HSSPeerListener, HSSAppListener):
        unittest.TestCase.setUp(self)

        self.dstack = mock.MagicMock()
        stack.Stack.return_value = self.dstack
        self.peer_listener = mock.MagicMock()
        HSSPeerListener.return_value = self.peer_listener
        self.app_listener = mock.MagicMock()
        HSSAppListener.return_value = self.app_listener

        settings.PASSWORD_ENCRYPTION_KEY = "TOPSECRET"
        settings.HSS_ENABLED = True
        settings.HSS_IP = "example.com"
        settings.HSS_PORT = 3868
        self.gateway = HSSGateway()

    def test_hss_enabled(self):
        settings.HSS_ENABLED = False
        self.assertRaises(HSSNotEnabled, HSSGateway)

    # There is a fair amount of code here, for testing what is essentially a
    # pretty simple function. The verbosity comes from correctly mocking out
    # the deferred inlineCallbacks decorated functions, which are inherently
    # more complex than standard functions - even if they appear similar.
    # These tests also act as a good example of testing inlineCallback functions,
    # with the same techniques applied to more complicated functions later
    def test_get_digest(self):
        self.peer_listener.fetch_multimedia_auth.return_value = defer.Deferred(
        )
        get_deferred = self.gateway.get_digest("priv", "pub")
        self.peer_listener.fetch_multimedia_auth.assert_called_once_with(
            "priv", "pub")
        get_callback = mock.MagicMock()
        get_deferred.addCallback(get_callback)
        self.peer_listener.fetch_multimedia_auth.return_value.callback(
            "digest")
        self.assertEquals(get_callback.call_args[0][0], "digest")

    def test_get_digest_not_found(self):
        self.peer_listener.fetch_multimedia_auth.return_value = defer.Deferred(
        )
        get_deferred = self.gateway.get_digest("priv", "pub")
        self.peer_listener.fetch_multimedia_auth.assert_called_once_with(
            "priv", "pub")
        get_errback = mock.MagicMock()
        get_deferred.addErrback(get_errback)
        self.peer_listener.fetch_multimedia_auth.return_value.errback(
            HSSNotFound())
        self.assertEquals(get_errback.call_args[0][0].type, HSSNotFound)

    def test_get_ifc(self):
        self.peer_listener.fetch_server_assignment.return_value = defer.Deferred(
        )
        get_deferred = self.gateway.get_ifc("priv", "pub")
        self.peer_listener.fetch_server_assignment.assert_called_once_with(
            "priv", "pub")
        get_callback = mock.MagicMock()
        get_deferred.addCallback(get_callback)
        # server_assignmetn returns both the public ids and the iFC. We only care about the iFC
        self.peer_listener.fetch_server_assignment.return_value.callback(
            ([], "ifc"))
        self.assertEquals(get_callback.call_args[0][0], "ifc")

    def test_get_ifc_not_found(self):
        self.peer_listener.fetch_server_assignment.return_value = defer.Deferred(
        )
        get_deferred = self.gateway.get_ifc("priv", "pub")
        self.peer_listener.fetch_server_assignment.assert_called_once_with(
            "priv", "pub")
        get_errback = mock.MagicMock()
        get_deferred.addErrback(get_errback)
        self.peer_listener.fetch_server_assignment.return_value.errback(
            HSSNotFound())
        self.assertEquals(get_errback.call_args[0][0].type, HSSNotFound)

    def test_get_public_ids(self):
        self.peer_listener.fetch_server_assignment.return_value = defer.Deferred(
        )
        get_deferred = self.gateway.get_public_ids("priv", "pub")
        self.peer_listener.fetch_server_assignment.assert_called_once_with(
            "priv", "pub")
        get_callback = mock.MagicMock()
        get_deferred.addCallback(get_callback)
        # server_assignmetn returns both the public ids and the iFC. We only care about the ids
        self.peer_listener.fetch_server_assignment.return_value.callback(
            (["pub1", "pub2"], "ifc"))
        self.assertEquals(get_callback.call_args[0][0], ["pub1", "pub2"])

    def test_get_public_ids_not_found(self):
        self.peer_listener.fetch_server_assignment.return_value = defer.Deferred(
        )
        get_deferred = self.gateway.get_public_ids("priv", "pub")
        self.peer_listener.fetch_server_assignment.assert_called_once_with(
            "priv", "pub")
        get_errback = mock.MagicMock()
        get_deferred.addErrback(get_errback)
        self.peer_listener.fetch_server_assignment.return_value.errback(
            HSSNotFound())
        self.assertEquals(get_errback.call_args[0][0].type, HSSNotFound)