예제 #1
0
async def test_get_tentacle_nodes_on_exchange_name_and_tentacle_type():
    matrix = Matrix()
    Matrices.instance().add_matrix(matrix)
    created_node_1 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="NO_TYPE",
                          tentacle_name="Test-TA",
                          exchange_name="binance"))
    created_node_2 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TEST_TYPE",
                          tentacle_name="Test-TA-2",
                          exchange_name="binance"))
    assert get_tentacle_nodes(matrix.matrix_id, exchange_name="binance") == [
        matrix.get_node_at_path(
            get_tentacle_path(exchange_name="binance",
                              tentacle_type="NO_TYPE")),
        matrix.get_node_at_path(
            get_tentacle_path(exchange_name="binance",
                              tentacle_type="TEST_TYPE"))
    ]
    assert get_tentacle_nodes(matrix.matrix_id,
                              exchange_name="binance",
                              tentacle_type="NO_TYPE") == [created_node_1]
    assert get_tentacle_nodes(matrix.matrix_id,
                              exchange_name="binance",
                              tentacle_type="TEST_TYPE") == [created_node_2]
    assert get_tentacle_nodes(matrix.matrix_id, exchange_name="bitfinex") == []
    Matrices.instance().del_matrix(matrix.matrix_id)
예제 #2
0
def test_get_matrix_default_value_path():
    assert get_matrix_default_value_path(tentacle_type="TA", tentacle_name="Test-TA", exchange_name="binance") == \
           get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA", exchange_name="binance")
    assert get_matrix_default_value_path(tentacle_type="TA", tentacle_name="Test-TA",
                                         symbol="ETH", time_frame="1h") == \
           get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA") + \
           get_tentacle_value_path(symbol="ETH", time_frame="1h")
    assert get_matrix_default_value_path(tentacle_type="TA", tentacle_name="Test-TA",
                                         symbol="ETH", exchange_name="bitmex") == \
           get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA", exchange_name="bitmex") + \
           get_tentacle_value_path(symbol="ETH")
예제 #3
0
def test_get_tentacle_path():
    assert get_tentacle_path(tentacle_type="TA",
                             tentacle_name="Test-TA",
                             exchange_name="binance") == [
                                 "binance", "TA", "Test-TA"
                             ]
    assert get_tentacle_path(tentacle_type="TA",
                             tentacle_name="Test-TA") == ["TA", "Test-TA"]
    assert get_tentacle_path(
        exchange_name="binance",
        tentacle_name="Test-TA") == ["binance", "Test-TA"]
    assert get_tentacle_path(tentacle_name="Test-TA") == ["Test-TA"]
예제 #4
0
async def test_get_tentacle_nodes_on_multiple_tentacle_type():
    matrix = Matrix()
    Matrices.instance().add_matrix(matrix)
    created_node_1 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA"))
    created_node_2 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA-2"))
    created_node_3 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA-3"))
    assert get_tentacle_nodes(matrix.matrix_id, tentacle_type="TA") == [
        created_node_1, created_node_2, created_node_3
    ]
    Matrices.instance().del_matrix(matrix.matrix_id)
예제 #5
0
async def test_get_tentacle_nodes_on_tentacle_type():
    matrix = Matrix()
    Matrices.instance().add_matrix(matrix)
    created_node_1 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="NO_TYPE", tentacle_name="Test-TA"))
    created_node_2 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TEST_TYPE",
                          tentacle_name="Test-TA-2"))

    assert get_tentacle_nodes(matrix.matrix_id, tentacle_type="TA") == []
    assert get_tentacle_nodes(matrix.matrix_id,
                              tentacle_type="NO_TYPE") == [created_node_1]
    assert get_tentacle_nodes(matrix.matrix_id,
                              tentacle_type="TEST_TYPE") == [created_node_2]
    Matrices.instance().del_matrix(matrix.matrix_id)
예제 #6
0
async def test_get_tentacle_value():
    matrix = Matrix()
    Matrices.instance().add_matrix(matrix)
    assert not get_tentacle_value(matrix.matrix_id, tentacle_path=["Test-TA"])

    matrix.matrix.get_or_create_node(path=["Test-TA"])
    matrix.set_node_value(value_type="TA", value_path=["Test-TA"], value=0)
    assert get_tentacle_value(matrix.matrix_id, tentacle_path=["Test-TA"]) == 0

    matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA"))
    matrix.set_node_value(value_type="TA",
                          value_path=get_tentacle_path(
                              tentacle_type="TA", tentacle_name="Test-TA"),
                          value="test")
    assert get_tentacle_value(
        matrix.matrix_id,
        tentacle_path=get_tentacle_path(tentacle_type="TA",
                                        tentacle_name="Test-TA")) == "test"
    Matrices.instance().del_matrix(matrix.matrix_id)
예제 #7
0
async def test_set_tentacle_value():
    matrix = Matrix()
    Matrices.instance().add_matrix(matrix)
    set_tentacle_value(matrix.matrix_id,
                       tentacle_type="TA",
                       tentacle_value=0,
                       tentacle_path=["test-path"])
    assert matrix.get_node_at_path(["test-path"]).node_value == 0

    set_tentacle_value(matrix.matrix_id,
                       tentacle_type="TA",
                       tentacle_value="value",
                       tentacle_path=get_tentacle_path(
                           tentacle_type="TA",
                           tentacle_name="Test-TA",
                           exchange_name="binance"))
    assert matrix.get_node_at_path(
        get_tentacle_path(tentacle_type="TA",
                          tentacle_name="Test-TA",
                          exchange_name="binance")).node_value == "value"
    Matrices.instance().del_matrix(matrix.matrix_id)
예제 #8
0
async def test_get_tentacles_value_nodes_with_symbol():
    matrix = Matrix()
    Matrices.instance().add_matrix(matrix)
    created_node = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA"))
    created_node_2 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA-2"))
    btc_node = matrix.matrix.get_or_create_node(
        get_tentacle_value_path(symbol="BTC"), starting_node=created_node)
    eth_node = matrix.matrix.get_or_create_node(
        get_tentacle_value_path(symbol="ETH"), starting_node=created_node)
    btc_node_2 = matrix.matrix.get_or_create_node(
        get_tentacle_value_path(symbol="BTC"), starting_node=created_node_2)
    assert get_tentacles_value_nodes(
        matrix.matrix_id,
        tentacle_nodes=[created_node, created_node_2],
        symbol="BTC") == [btc_node, btc_node_2]
    assert get_tentacles_value_nodes(
        matrix.matrix_id,
        tentacle_nodes=[created_node, created_node_2],
        symbol="ETH") == [eth_node]
    Matrices.instance().del_matrix(matrix.matrix_id)
예제 #9
0
async def test_get_tentacles_value_nodes_with_time_frame():
    matrix = Matrix()
    Matrices.instance().add_matrix(matrix)
    assert get_tentacle_value_path(time_frame="1m") == ["1m"]
    created_node = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA"))
    created_node_2 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA-2"))
    m_node = matrix.matrix.get_or_create_node(
        get_tentacle_value_path(time_frame="1m"), starting_node=created_node)
    h_node = matrix.matrix.get_or_create_node(
        get_tentacle_value_path(time_frame="1h"), starting_node=created_node)
    h_node_2 = matrix.matrix.get_or_create_node(
        get_tentacle_value_path(time_frame="1h"), starting_node=created_node_2)
    assert get_tentacles_value_nodes(
        matrix.matrix_id,
        tentacle_nodes=[created_node, created_node_2],
        time_frame="1h") == [h_node, h_node_2]
    assert get_tentacles_value_nodes(
        matrix.matrix_id,
        tentacle_nodes=[created_node, created_node_2],
        symbol="1m") == [m_node]
    Matrices.instance().del_matrix(matrix.matrix_id)
예제 #10
0
async def test_evaluator_channel_send():
    del_evaluator_channels(MATRIX_TEST_ID)
    matrix_id = create_matrix()
    await create_evaluator_channels(MATRIX_TEST_ID)
    await get_chan(MATRIX_CHANNEL,
                   MATRIX_TEST_ID).new_consumer(matrix_callback)
    await get_chan(MATRIX_CHANNEL,
                   MATRIX_TEST_ID).get_internal_producer().send(
                       matrix_id=matrix_id,
                       evaluator_name="test",
                       evaluator_type="test2",
                       eval_note=1)

    # following assert should be None because send() doesn't call set_tentacle_value
    assert Matrices.instance().get_matrix(matrix_id).get_node_at_path(
        get_tentacle_path(tentacle_name="test", tentacle_type="test2")) is None
    await get_chan(MATRIX_CHANNEL, MATRIX_TEST_ID).stop()
    Matrices.instance().del_matrix(matrix_id)
예제 #11
0
async def test_evaluator_channel_send_eval_note():
    del_evaluator_channels(MATRIX_TEST_ID)
    matrix_id = create_matrix()
    await create_evaluator_channels(MATRIX_TEST_ID)
    await get_chan(MATRIX_CHANNEL,
                   MATRIX_TEST_ID).new_consumer(matrix_callback)
    await get_chan(MATRIX_CHANNEL,
                   MATRIX_TEST_ID).get_internal_producer().send_eval_note(
                       matrix_id=matrix_id,
                       evaluator_name="test",
                       evaluator_type="test2",
                       eval_note=1,
                       eval_note_type=int)

    assert Matrices.instance().get_matrix(matrix_id).get_node_at_path(
        get_tentacle_path(tentacle_name="test",
                          tentacle_type="test2")).node_value == 1
    await get_chan(MATRIX_CHANNEL, MATRIX_TEST_ID).stop()
    Matrices.instance().del_matrix(matrix_id)
예제 #12
0
async def test_get_tentacles_value_nodes_mixed():
    matrix = Matrix()
    Matrices.instance().add_matrix(matrix)

    created_node = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA"))
    created_node_2 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA-2"))
    created_node_3 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA", tentacle_name="Test-TA-3"))
    btc_h_node = matrix.matrix.get_or_create_node(get_tentacle_value_path(
        symbol="BTC", time_frame="1h"),
                                                  starting_node=created_node)
    btc_node = matrix.matrix.get_or_create_node(
        get_tentacle_value_path(symbol="BTC"), starting_node=created_node_2)
    eth_node = matrix.matrix.get_or_create_node(
        get_tentacle_value_path(symbol="ETH"), starting_node=created_node_3)
    eth_m_node = matrix.matrix.get_or_create_node(get_tentacle_value_path(
        symbol="ETH", time_frame="1m"),
                                                  starting_node=created_node_2)
    eth_d_node = matrix.matrix.get_or_create_node(get_tentacle_value_path(
        symbol="ETH", time_frame="1d"),
                                                  starting_node=created_node)
    ltc_h_node = matrix.matrix.get_or_create_node(get_tentacle_value_path(
        symbol="LTC", time_frame="1h"),
                                                  starting_node=created_node_2)

    assert get_tentacles_value_nodes(
        matrix.matrix_id,
        tentacle_nodes=[created_node, created_node_2, created_node_3],
        symbol="BTC",
        time_frame="1h") == [btc_h_node]
    assert get_tentacles_value_nodes(
        matrix.matrix_id,
        tentacle_nodes=[created_node, created_node_2, created_node_3],
        symbol="BTC") == [
            matrix.get_node_at_path(get_tentacle_value_path(symbol="BTC"),
                                    starting_node=created_node),
            matrix.get_node_at_path(get_tentacle_value_path(symbol="BTC"),
                                    starting_node=created_node_2)
        ]
    assert get_tentacles_value_nodes(
        matrix.matrix_id,
        tentacle_nodes=[created_node, created_node_3],
        symbol="BTC") == [
            matrix.get_node_at_path(get_tentacle_value_path(symbol="BTC"),
                                    starting_node=created_node)
        ]
    assert get_tentacles_value_nodes(
        matrix.matrix_id,
        tentacle_nodes=[created_node, created_node_3],
        symbol="BTC",
        time_frame="1m") == []
    assert get_tentacles_value_nodes(matrix.matrix_id,
                                     tentacle_nodes=[created_node_3],
                                     symbol="BTC") == []
    assert get_tentacles_value_nodes(
        matrix.matrix_id,
        tentacle_nodes=[created_node, created_node_2, created_node_3],
        symbol="ETH") == [
            matrix.get_node_at_path(get_tentacle_value_path(symbol="ETH"),
                                    starting_node=created_node),
            matrix.get_node_at_path(get_tentacle_value_path(symbol="ETH"),
                                    starting_node=created_node_2),
            matrix.get_node_at_path(get_tentacle_value_path(symbol="ETH"),
                                    starting_node=created_node_3)
        ]
    Matrices.instance().del_matrix(matrix.matrix_id)
예제 #13
0
async def test_get_tentacle_nodes_mixed():
    matrix = Matrix()
    Matrices.instance().add_matrix(matrix)
    created_node_1 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA",
                          tentacle_name="Test-TA",
                          exchange_name="binance"))
    created_node_2 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA",
                          tentacle_name="Test-TA-2",
                          exchange_name="bitfinex"))
    created_node_3 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TA",
                          tentacle_name="Test-TA-3",
                          exchange_name="binance"))
    created_node_4 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TEST-TYPE",
                          tentacle_name="Test-TA-4",
                          exchange_name="binance"))
    created_node_5 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TEST-TYPE",
                          tentacle_name="Test-TA-5",
                          exchange_name="bitfinex"))
    created_node_6 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_type="TEST-TYPE",
                          tentacle_name="Test-TA-6"))
    created_node_7 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_name="Test-TA-7", exchange_name="bitfinex"))
    created_node_8 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_name="Test-TA-8"))
    created_node_9 = matrix.matrix.get_or_create_node(
        get_tentacle_path(tentacle_name="Test-TA-9", exchange_name="binance"))
    assert get_tentacle_nodes(matrix.matrix_id,
                              exchange_name="binance",
                              tentacle_type="TA") == [
                                  created_node_1, created_node_3
                              ]
    assert get_tentacle_nodes(matrix.matrix_id,
                              exchange_name="binance",
                              tentacle_type="TEST-TYPE") == [created_node_4]

    assert get_tentacle_nodes(matrix.matrix_id,
                              exchange_name="bitfinex",
                              tentacle_type="TEST-TYPE") == [created_node_5]

    assert get_tentacle_nodes(matrix.matrix_id, exchange_name="bitfinex") == [
        matrix.get_node_at_path(
            get_tentacle_path(exchange_name="bitfinex", tentacle_type="TA")),
        matrix.get_node_at_path(
            get_tentacle_path(exchange_name="bitfinex",
                              tentacle_type="TEST-TYPE")), created_node_7
    ]

    assert get_tentacle_nodes(matrix.matrix_id,
                              tentacle_type="TEST-TYPE") == [created_node_6]

    assert get_tentacle_nodes(matrix.matrix_id, exchange_name="binance") == [
        matrix.get_node_at_path(
            get_tentacle_path(exchange_name="binance", tentacle_type="TA")),
        matrix.get_node_at_path(
            get_tentacle_path(exchange_name="binance",
                              tentacle_type="TEST-TYPE")), created_node_9
    ]
    Matrices.instance().del_matrix(matrix.matrix_id)