Exemplo n.º 1
0
    def test_node_clear(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())

        # Register a node user
        router.register_user(
            dict(uaid=dummy_uaid,
                 node_id="asdf",
                 connected_at=1234,
                 router_key="webpush"))

        # Verify
        user = router.get_uaid(dummy_uaid)
        eq_(user["node_id"], "asdf")
        eq_(user["connected_at"], 1234)
        eq_(user["router_key"], "webpush")

        # Clear
        router.clear_node(user)

        # Verify
        user = router.get_uaid(dummy_uaid)
        eq_(user.get("node_id"), None)
        eq_(user["connected_at"], 1234)
        eq_(user["router_key"], "webpush")
Exemplo n.º 2
0
    def test_clear_node_provision_failed(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())
        router.table.connection.put_item = Mock()

        def raise_error(*args, **kwargs):
            raise ProvisionedThroughputExceededException(None, None)

        router.table.connection.put_item.side_effect = raise_error
        with self.assertRaises(ProvisionedThroughputExceededException):
            router.clear_node(Item(r, dict(uaid="asdf", connected_at="1234", node_id="asdf")))
Exemplo n.º 3
0
    def test_clear_node_provision_failed(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())
        router.table.connection.put_item = Mock()

        def raise_error(*args, **kwargs):
            raise ProvisionedThroughputExceededException(None, None)

        router.table.connection.put_item.side_effect = raise_error
        with self.assertRaises(ProvisionedThroughputExceededException):
            router.clear_node(
                Item(r, dict(uaid="asdf", connected_at="1234",
                             node_id="asdf")))
Exemplo n.º 4
0
    def test_node_clear(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())

        # Register a node user
        router.register_user(dict(uaid="asdf", node_id="asdf", connected_at=1234))

        # Verify
        user = router.get_uaid("asdf")
        eq_(user["node_id"], "asdf")

        # Clear
        router.clear_node(user)

        # Verify
        user = router.get_uaid("asdf")
        eq_(user.get("node_id"), None)
Exemplo n.º 5
0
    def test_node_clear(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())

        # Register a node user
        router.register_user(
            dict(uaid="asdf", node_id="asdf", connected_at=1234))

        # Verify
        user = router.get_uaid("asdf")
        eq_(user["node_id"], "asdf")

        # Clear
        router.clear_node(user)

        # Verify
        user = router.get_uaid("asdf")
        eq_(user.get("node_id"), None)
Exemplo n.º 6
0
    def test_clear_node_provision_failed(self):
        router = Router(self.table_conf, SinkMetrics(), resource=self.resource)

        def raise_condition(*args, **kwargs):
            raise ClientError(
                {'Error': {
                    'Code': 'ProvisionedThroughputExceededException'
                }}, 'mock_update_item')

        mm = Mock()
        mm.put_item = Mock(side_effect=raise_condition)
        router.table = mm
        with pytest.raises(ClientError) as ex:
            router.clear_node(
                dict(uaid=dummy_uaid,
                     connected_at="1234",
                     node_id="asdf",
                     router_type="webpush"))
        assert (ex.value.response['Error']['Code'] ==
                "ProvisionedThroughputExceededException")
Exemplo n.º 7
0
    def test_clear_node_provision_failed(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())

        def raise_condition(*args, **kwargs):
            import autopush.db
            raise autopush.db.g_client.exceptions.ClientError(
                {'Error': {
                    'Code': 'ProvisionedThroughputExceededException'
                }}, 'mock_update_item')

        router.table.put_item = Mock(side_effect=raise_condition)
        with pytest.raises(ClientError) as ex:
            router.clear_node(
                dict(uaid=dummy_uaid,
                     connected_at="1234",
                     node_id="asdf",
                     router_type="webpush"))
        assert (ex.value.response['Error']['Code'] ==
                "ProvisionedThroughputExceededException")
Exemplo n.º 8
0
    def test_preflight_check_fail(self):
        router = Router(get_router_table(), SinkMetrics())
        message = Message(get_rotating_message_table(), SinkMetrics())

        def raise_exc(*args, **kwargs):  # pragma: no cover
            raise Exception("Oops")

        router.clear_node = Mock()
        router.clear_node.side_effect = raise_exc

        with pytest.raises(Exception):
            preflight_check(message, router)
Exemplo n.º 9
0
    def test_preflight_check_fail(self):
        router = Router(get_router_table(), SinkMetrics())
        storage = Storage(get_storage_table(), SinkMetrics())

        def raise_exc(*args, **kwargs):  # pragma: no cover
            raise Exception("Oops")

        router.clear_node = Mock()
        router.clear_node.side_effect = raise_exc

        with self.assertRaises(Exception):
            preflight_check(storage, router)
Exemplo n.º 10
0
    def test_node_clear_fail(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())

        def raise_condition(*args, **kwargs):
            raise ConditionalCheckFailedException(None, None)

        router.table.connection.put_item = Mock()
        router.table.connection.put_item.side_effect = raise_condition
        data = dict(uaid="asdf", node_id="asdf", connected_at=1234)
        result = router.clear_node(Item(r, data))
        eq_(result, False)
Exemplo n.º 11
0
    def test_preflight_check_fail(self):
        router = Router(get_router_table(), SinkMetrics())
        storage = Storage(get_storage_table(), SinkMetrics())

        def raise_exc(*args, **kwargs):  # pragma: no cover
            raise Exception("Oops")

        router.clear_node = Mock()
        router.clear_node.side_effect = raise_exc

        with self.assertRaises(Exception):
            preflight_check(storage, router)
Exemplo n.º 12
0
    def test_node_clear_fail(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())

        def raise_condition(*args, **kwargs):
            raise ConditionalCheckFailedException(None, None)

        router.table.connection.put_item = Mock()
        router.table.connection.put_item.side_effect = raise_condition
        data = dict(uaid=dummy_uaid, node_id="asdf", connected_at=1234)
        result = router.clear_node(Item(r, data))
        eq_(result, False)
Exemplo n.º 13
0
    def test_node_clear(self):
        router = Router(self.table_conf, SinkMetrics(),
                        resource=self.resource)

        # Register a node user
        router.register_user(dict(uaid=dummy_uaid, node_id="asdf",
                                  connected_at=1234,
                                  router_type="webpush"))
        # Verify
        user = router.get_uaid(dummy_uaid)
        assert user["node_id"] == "asdf"
        assert user["connected_at"] == 1234
        assert user["router_type"] == "webpush"

        # Clear
        router.clear_node(user)

        # Verify
        user = router.get_uaid(dummy_uaid)
        assert user.get("node_id") is None
        assert user["connected_at"] == 1234
        assert user["router_type"] == "webpush"
Exemplo n.º 14
0
    def test_node_clear_fail(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())

        def raise_condition(*args, **kwargs):
            raise ClientError(
                {'Error': {
                    'Code': 'ConditionalCheckFailedException'
                }}, 'mock_update_item')

        router.table.put_item = Mock(side_effect=raise_condition)
        data = dict(uaid=dummy_uaid, node_id="asdf", connected_at=1234)
        result = router.clear_node(data)
        assert result is False
Exemplo n.º 15
0
    def test_node_clear(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())

        # Register a node user
        router.register_user(dict(uaid=dummy_uaid, node_id="asdf",
                                  connected_at=1234,
                                  router_key="webpush"))

        # Verify
        user = router.get_uaid(dummy_uaid)
        eq_(user["node_id"], "asdf")
        eq_(user["connected_at"], 1234)
        eq_(user["router_key"], "webpush")

        # Clear
        router.clear_node(user)

        # Verify
        user = router.get_uaid(dummy_uaid)
        eq_(user.get("node_id"), None)
        eq_(user["connected_at"], 1234)
        eq_(user["router_key"], "webpush")
Exemplo n.º 16
0
    def test_preflight_check_fail(self):
        router = Router(self.table_conf, SinkMetrics(), resource=self.resource)
        message = Message(
            get_rotating_message_tablename(boto_resource=self.resource),
            boto_resource=self.resource)

        def raise_exc(*args, **kwargs):  # pragma: no cover
            raise Exception("Oops")

        router.clear_node = Mock()
        router.clear_node.side_effect = raise_exc

        with pytest.raises(Exception):
            preflight_check(message, router, self.resource)
Exemplo n.º 17
0
    def test_clear_node_condition_failed(self):
        r = get_router_table()
        router = Router(r, SinkMetrics())

        def raise_error(*args, **kwargs):
            import autopush.db
            raise autopush.db.g_client.exceptions.ClientError(
                {'Error': {
                    'Code': 'ConditionalCheckFailedException'
                }}, 'mock_put_item')

        router.table.put_item = Mock(side_effect=raise_error)
        res = router.clear_node(
            dict(uaid=dummy_uaid,
                 connected_at="1234",
                 node_id="asdf",
                 router_type="webpush"))
        assert res is False
Exemplo n.º 18
0
    def test_clear_node_condition_failed(self):
        router = Router(self.table_conf, SinkMetrics(), resource=self.resource)

        def raise_error(*args, **kwargs):
            raise ClientError(
                {'Error': {
                    'Code': 'ConditionalCheckFailedException'
                }}, 'mock_put_item')

        mock_put = Mock()
        mock_put.put_item = Mock(side_effect=raise_error)
        router.table = mock_put
        res = router.clear_node(
            dict(uaid=dummy_uaid,
                 connected_at="1234",
                 node_id="asdf",
                 router_type="webpush"))

        assert res is False