Ejemplo n.º 1
0
    async def test_record_transaction_cache_hit_container(
            self, dummy_guillotina, metrics_registry):
        storage = AsyncMock()
        mng = TransactionManager(storage)
        cache = AsyncMock()

        cache.get.return_value = {
            "state": pickle.dumps(create_content(Container)),
            "zoid": ROOT_ID,
            "tid": 1,
            "id": "foobar",
        }
        strategy = AsyncMock()
        txn = Transaction(mng, cache=cache, strategy=strategy)

        await txn.get("foobar")

        assert (metrics_registry.get_sample_value("guillotina_cache_ops_total",
                                                  {
                                                      "type": "_get",
                                                      "result": "hit"
                                                  }) is None)

        assert (metrics_registry.get_sample_value("guillotina_cache_ops_total",
                                                  {
                                                      "type": "_get",
                                                      "result": "hit_roots"
                                                  }) == 1.0)
Ejemplo n.º 2
0
def testsolver():
    mock_ws = AsyncMock(spec=Workspace)
    mock_ws.storage = "mock_storage"
    mock_ws.get_container_uri = AsyncMock(
        return_value="mock_container_uri/foo/bar")
    testsolver = Solver(mock_ws, "Microsoft", "SimulatedAnnealing", "json",
                        "json")
    return testsolver
Ejemplo n.º 3
0
    async def test_get(self):
        get_mock = AsyncMock(return_value=Article(id="1", body='test'))

        repo = RepositoryMock()
        repo.get_list = get_mock
        usecase = ArticleInteractor(article_repository=repo)

        self.assertEqual(await usecase.get_list(1), Article(id="1", body="test"))
        get_mock.assert_called_with(1)
Ejemplo n.º 4
0
    async def test_no_publish_if_exc_during_register(self, request_dict):
        channel_stub = StubCollection().channel_stubs[CHANNEL_STUB_NAME]
        channel_stub.register_citizen = AsyncMock(return_value=False)

        WSDispatcher.publish_heartbeat = AsyncMock()
        WSDispatcher.publish_new_block = AsyncMock()
        WSDispatcher.publish_unregister = AsyncMock()

        await WSDispatcher.node_ws_Subscribe(**request_dict)

        assert not WSDispatcher.publish_heartbeat.called
        assert not WSDispatcher.publish_new_block.called
        assert WSDispatcher.publish_unregister.called
Ejemplo n.º 5
0
    async def test_register_citizen_and_channel_returns_false(self):
        channel_stub: MockChannelInnerStub = StubCollection(
        ).channel_stubs[CHANNEL_STUB_NAME]
        channel_stub.register_citizen = AsyncMock(return_value=False)
        channel_stub.unregister_citizen = AsyncMock()

        async with Reception(channel_name=CHANNEL_STUB_NAME,
                             peer_id="",
                             remote_target="") as registered:
            assert channel_stub.register_citizen.called
            assert not registered

        assert channel_stub.unregister_citizen.called
Ejemplo n.º 6
0
    async def test_register_citizen_and_raised_exc_during_communicate(self):
        channel_stub: MockChannelInnerStub = StubCollection(
        ).channel_stubs[CHANNEL_STUB_NAME]
        channel_stub.register_citizen = AsyncMock(side_effect=RuntimeError(
            "SUBSCRIBE_LIMIT or Already registered!!"))
        channel_stub.unregister_citizen = AsyncMock()

        async with Reception(channel_name=CHANNEL_STUB_NAME,
                             peer_id="",
                             remote_target="") as registered:
            assert channel_stub.register_citizen.called
            assert not registered

        assert channel_stub.unregister_citizen.called
    async def test_get(self):
        get_main_group_mock = AsyncMock(
            return_value={"articles": [{
                "id": "1",
                "body": "test"
            }]})

        driver = DriverMock()
        driver.get_articles = get_main_group_mock
        repository = ArticleRepositoryImpl(article_driver=driver)

        self.assertEqual(await repository.get_list(1),
                         Articles(values=[Article(id="1", body="test")]))
        get_main_group_mock.assert_called_with(1)
Ejemplo n.º 8
0
async def test__normal_service(caplog, method):
    caplog.set_level(logging.INFO)

    with patch("middlewared.main.multiprocessing"):
        middleware = Middleware()
    middleware.loop = asyncio.get_event_loop()
    middleware.add_service(MockService(middleware))

    fut = asyncio.Future()
    application = Application(
        middleware, asyncio.get_event_loop(), Mock(),
        Mock(send_str=AsyncMock(side_effect=fut.set_result)))
    application.authenticated = True
    application.handshake = True
    await application.on_message({
        "id": "1",
        "msg": "method",
        "method": f"mock.{method}",
        "params": [{
            "password": "******"
        }]
    })
    await fut

    assert any(
        f"Exception while calling mock.{method}(*[{{'password': '******'}}])"
        in record.message for record in caplog.get_records("call"))
Ejemplo n.º 9
0
    async def test_send_exception_check_parameters(self):
        ws = MockWebSocket()
        ws.send = AsyncMock()
        expected_method = "fake_method"
        expected_exc = RuntimeError("test")
        expected_error_code = message_code.Response.fail_subscribe_limit

        expected_request = Request(method=expected_method,
                                   error=str(expected_exc),
                                   code=expected_error_code)
        expected_called_params = dict(expected_request)

        await WSDispatcher.send_exception(ws,
                                          method=expected_method,
                                          exception=expected_exc,
                                          error_code=expected_error_code)

        actual_called_params, _ = ws.send.call_args
        actual_called_params: dict = json.loads(actual_called_params[0])

        # Remove id because jsonrpc call auto-increments request id.
        expected_called_params.pop("id")
        actual_called_params.pop("id")

        assert actual_called_params == expected_called_params
Ejemplo n.º 10
0
    async def test_sell_all_currencies(self):
        _, exchange_manager, trader_inst = await self.init_default()
        portfolio_manager = exchange_manager.exchange_personal_data.portfolio_manager

        portfolio_manager.portfolio.portfolio["ADA"] = {
            PORTFOLIO_AVAILABLE: 1500,
            PORTFOLIO_TOTAL: 1500
        }
        portfolio_manager.portfolio.portfolio["USDT"] = {
            PORTFOLIO_AVAILABLE: 1000,
            PORTFOLIO_TOTAL: 1000
        }

        if not os.getenv('CYTHON_TEST_IGNORE'):
            with patch(
                    'octobot_trading.data_manager.prices_manager.PricesManager.get_mark_price',
                    new=AsyncMock(return_value=1)):
                orders = await trader_inst.sell_all()

            # 1 order to sell ada, 1 order to buy btc (sell usdt), NO order for usd (not in config pairs)
            assert len(orders) == 2

            sell_ADA_order = orders[0]
            assert sell_ADA_order.symbol == "ADA/BTC"
            assert sell_ADA_order.order_type == TraderOrderType.SELL_MARKET
            assert sell_ADA_order.origin_quantity == 1500

            sell_USDT_order = orders[1]
            assert sell_USDT_order.symbol == "BTC/USDT"
            assert sell_USDT_order.order_type == TraderOrderType.BUY_MARKET
            assert round(sell_USDT_order.origin_quantity,
                         8) == round(1000 / sell_USDT_order.origin_price, 8)

        await self.stop(exchange_manager)
Ejemplo n.º 11
0
def version_mock(mocker, spec):
    import sys
    if sys.version_info[1] < 8:
        from asyncmock import AsyncMock  # type: ignore
        return AsyncMock(spec=spec)
    else:
        return mocker.MagicMock(spec=spec)
Ejemplo n.º 12
0
async def test__job_service(caplog, method):
    caplog.set_level(logging.INFO)

    with patch("middlewared.main.multiprocessing"):
        middleware = Middleware()
    middleware.loop = asyncio.get_event_loop()
    middleware.add_service(CoreService(middleware))
    middleware.add_service(DatastoreService(middleware))
    middleware.add_service(JobService(middleware))
    middleware._resolve_methods()

    fut = asyncio.Future()
    application = Application(middleware, asyncio.get_event_loop(), Mock(), Mock(send_str=AsyncMock(side_effect=fut.set_result)))
    application.authenticated = True
    application.authenticated_credentials = Mock(authorize=Mock(return_value=True))
    application.handshake = True
    await application.on_message({"id": "1", "msg": "method", "method": f"job.{method}", "params": [{"password": "******"}]})
    await fut

    fut = asyncio.Future()
    application.response.send_str = AsyncMock(side_effect=fut.set_result)
    await application.on_message({"id": "1", "msg": "method", "method": "core.get_jobs", "params": []})
    result = json.loads(await fut)

    assert result["result"][0]["arguments"] == [{"password": "******"}]
Ejemplo n.º 13
0
async def test_cli_run(cli):
    mock_parse = AsyncMock()
    cli.parse = mock_parse
    argv: List = []
    await cli.run(argv)

    assert mock_parse.call_count == 1
Ejemplo n.º 14
0
 async def test_delete_many_memcached_metric(self, metrics_registry):
     driver = MemcachedDriver()
     driver._client = AsyncMock()
     await driver.delete_all(["foo", "bar"])
     assert (
         metrics_registry.get_sample_value(
             "guillotina_cache_memcached_ops_total", {"type": "delete_many", "error": "none"}
         )
         == 1.0
     )
     assert (
         metrics_registry.get_sample_value(
             "guillotina_cache_memcached_ops_processing_time_seconds_sum", {"type": "delete_many"}
         )
         > 0
     )
     assert (
         metrics_registry.get_sample_value(
             "guillotina_cache_memcached_ops_total", {"type": "delete", "error": "none"}
         )
         == 2.0
     )
     assert (
         metrics_registry.get_sample_value(
             "guillotina_cache_memcached_ops_processing_time_seconds_sum", {"type": "delete"}
         )
         > 0
     )
     assert metrics_registry.get_sample_value("guillotina_cache_memcached_delete_all_num_keys_sum") > 0
Ejemplo n.º 15
0
async def test_client_ws_connect(mocker: pytest_mock.MockerFixture):
    runner_mock = mocker.Mock()
    runner_mock.wait = AsyncMock()
    m = mocker.patch("pybotters.client.WebSocketRunner",
                     return_value=runner_mock)
    hdlr_str = mocker.Mock()
    hdlr_bytes = mocker.Mock()
    hdlr_json = mocker.Mock()
    async with pybotters.Client() as client:
        ret = await client.ws_connect(
            "ws://test.org",
            send_str='{"foo":"bar"}',
            send_bytes=b'{"foo":"bar"}',
            send_json={"foo": "bar"},
            hdlr_str=hdlr_str,
            hdlr_bytes=hdlr_bytes,
            hdlr_json=hdlr_json,
        )
    assert m.called
    assert m.call_args == [
        ("ws://test.org", client._session),
        {
            "send_str": '{"foo":"bar"}',
            "send_bytes": b'{"foo":"bar"}',
            "send_json": {
                "foo": "bar"
            },
            "hdlr_str": hdlr_str,
            "hdlr_bytes": hdlr_bytes,
            "hdlr_json": hdlr_json,
        },
    ]
    assert ret == runner_mock
Ejemplo n.º 16
0
 def setUp(self) -> None:
     """
     Set up the tests environment
     """
     container.reset()
     self.uaa_service = AsyncMock(spec=UaaService)
     container.set('uaa_service', self.uaa_service)
Ejemplo n.º 17
0
 def test_small_single_player_game(self):
     game = get_game(max_nb_ticks=10)
     game.register_player(RandomPlayer())
     viewer = AsyncMock()
     game.register_viewer(viewer)
     asyncio.run(game.game_loop())
     self.assertEqual(10, viewer.send_tick.call_count)
     self.assertEqual(1, viewer.send_winner.call_count)
Ejemplo n.º 18
0
async def test_consume_ends_called():
    consumer = await init_consumer_test()
    with patch.object(consumer, 'consume_ends',
                      new=AsyncMock()) as mocked_consume_ends:
        await get_chan(TEST_CHANNEL).get_internal_producer().send({})
        await mock_was_called_once(mocked_consume_ends)

    await get_chan(TEST_CHANNEL).stop()
async def test_send_primitive_async(request_adapter, request_info,
                                    mock_no_content_response):
    request_adapter.get_http_response_message = AsyncMock(
        return_value=mock_no_content_response)
    resp = await request_adapter.get_http_response_message(request_info)
    assert resp.headers.get("content-type") == 'application/json'
    final_result = await request_adapter.send_primitive_async(
        request_info, float, None, {})
    assert final_result is None
Ejemplo n.º 20
0
async def test_log_new_url_signal_data(mocker, config, test_input, expected):
    mocker.patch('consumer.pg_db_adapter.ssl')
    close_mock = AsyncMock()
    fetch_mock = AsyncMock(side_effect=[[], [], [{
        'url': "test",
        'id': "test"
    }], expected])
    execute_mock = AsyncMock()

    async def await_pool():
        return SimpleNamespace(close=close_mock,
                               fetch=fetch_mock,
                               execute=execute_mock)

    mocker.patch('asyncpg.create_pool', return_value=await_pool())
    db_writer = DbWebsiteMetricsWriter(config)
    async with db_writer:
        await db_writer.log_signal_data(*test_input)
async def test_send_collection_of_primitive_async(
        request_adapter, request_info, mock_primitive_collection_response):
    request_adapter.get_http_response_message = AsyncMock(
        return_value=mock_primitive_collection_response)
    resp = await request_adapter.get_http_response_message(request_info)
    assert resp.headers.get("content-type") == 'application/json'
    final_result = await request_adapter.send_collection_of_primitive_async(
        request_info, int, None, {})
    assert final_result == [12.1, 12.2, 12.3, 12.4, 12.5]
Ejemplo n.º 22
0
async def test_upload(mock_ws, pubo_problem):
    with patch("azure.quantum.aio.optimization.problem.BlobClient") as mock_blob_client, \
        patch("azure.quantum.aio.optimization.problem.ContainerClient") as mock_container_client, \
        patch("azure.quantum.aio.job.base_job.upload_blob") as mock_upload:
        mock_blob_client.from_blob_url.return_value = Mock()
        mock_container_client.from_container_url.return_value = Mock()
        assert(pubo_problem.uploaded_blob_uri == None)
        actual_result = await pubo_problem.upload(mock_ws)
        mock_upload.get_blob_uri_with_sas_token = AsyncMock()
        azure.quantum.aio.job.base_job.upload_blob.assert_called_once()
Ejemplo n.º 23
0
def request_next_move(return_value):
    server = Mock()
    server.game.max_nb_ticks = 500
    socket = AsyncMock()
    socket.recv.return_value = return_value
    gs, player = get_player(server, socket)
    player.logger = Mock()
    next_move = asyncio.run(player.request_next_move(123, gs))
    socket.send.assert_called_once()
    return next_move, player
Ejemplo n.º 24
0
    async def test_record_transaction_cache_empty(self, dummy_guillotina,
                                                  metrics_registry):
        storage = AsyncMock()
        mng = TransactionManager(storage)
        cache = AsyncMock()

        cache.get.return_value = transaction._EMPTY
        strategy = AsyncMock()
        txn = Transaction(mng, cache=cache, strategy=strategy)

        ob = create_content(Container)
        with pytest.raises(KeyError):
            await txn.get_annotation(ob, "foobar")

        assert (metrics_registry.get_sample_value(
            "guillotina_cache_ops_total", {
                "type": "_get_annotation",
                "result": "hit_empty"
            }) == 1.0)
Ejemplo n.º 25
0
 def test_socket_closed(self):
     server = Mock()
     server.game.max_nb_ticks = 500
     socket = AsyncMock()
     socket.recv.side_effect = websockets.ConnectionClosed(0, "")
     gs, player = get_player(server, socket)
     player.logger = Mock()
     next_move = asyncio.run(player.request_next_move(123, gs))
     socket.send.assert_called_once()
     self.assertEqual((None, Action.FORWARD), next_move)
     player.logger.warning.assert_called_once()
     player.server.game.unregister_player.assert_called_once()
Ejemplo n.º 26
0
 async def test_delete_redis_metric(self, metrics_registry):
     driver = RedisDriver()
     driver._pool = AsyncMock()
     await driver.delete("foo")
     assert (metrics_registry.get_sample_value(
         "guillotina_cache_redis_ops_total", {
             "type": "delete",
             "error": "none"
         }) == 1.0)
     assert (metrics_registry.get_sample_value(
         "guillotina_cache_redis_ops_processing_time_seconds_sum",
         {"type": "delete"}) > 0)
Ejemplo n.º 27
0
 def test_exception(self):
     server = Mock()
     server.game.max_nb_ticks = 500
     socket = AsyncMock()
     socket.recv.side_effect = Exception("dummy")
     gs, player = get_player(server, socket)
     player.logger = Mock()
     next_move = asyncio.run(player.request_next_move(123, gs))
     socket.send.assert_called_once()
     self.assertEqual((None, Action.FORWARD), next_move)
     player.logger.warning.assert_called_once()
     player.server.game.unregister_player.assert_not_called()
     self.assertTrue(len(player.player_state.history) > 0)
Ejemplo n.º 28
0
 async def test_uaa_auth_middleware_from_header(self):
     """
     Test calling the uaa auth middleware with a request with the token in headers validates the token
     and sets its user field
     """
     test_token = 'test_token'
     request_mock = Mock(spec=Request)
     request_mock.headers = {'X-API-Key': test_token}
     handler_mock = AsyncMock()
     handled_middleware = await uaa_auth_middleware(None, handler_mock)
     await handled_middleware(request_mock)
     self.uaa_service.validate_token.assert_called_with(test_token)
     self.assertIsNotNone(request_mock.user)
Ejemplo n.º 29
0
 async def test_get_miss_redis_metric(self, metrics_registry):
     driver = RedisDriver()
     driver._pool = AsyncMock()
     driver._pool.execute.return_value = None
     await driver.get("foo")
     assert (metrics_registry.get_sample_value(
         "guillotina_cache_redis_ops_total", {
             "type": "get_miss",
             "error": "none"
         }) == 1.0)
     assert (metrics_registry.get_sample_value(
         "guillotina_cache_redis_ops_processing_time_seconds_sum",
         {"type": "get_miss"}) > 0)
Ejemplo n.º 30
0
 async def test_uaa_auth_middleware_no_token(self):
     """
     Test calling the uaa auth middleware with a request without do not call to validate the token
     and its user field is None
     """
     request_mock = Mock(spec=Request)
     request_mock.headers = {}
     request_mock.cookies = {}
     handler_mock = AsyncMock()
     handled_middleware = await uaa_auth_middleware(None, handler_mock)
     await handled_middleware(request_mock)
     self.uaa_service.validate_token.assert_not_called()
     self.assertIsNone(request_mock.user)