Exemple #1
0
def test_filter_log_before_from_block(session):
    construct_log(session, block_number=0)

    params = FilterParams(from_block=1)

    results = filter_logs(session, params)
    assert not results
Exemple #2
0
def test_filter_log_after_to_block(session):
    construct_log(session, block_number=2)

    params = FilterParams(to_block=1)

    results = filter_logs(session, params)
    assert not results
Exemple #3
0
def test_filter_log_null_from_block_before_to_block(session):
    log = construct_log(session, block_number=2)
    construct_log(session, block_number=6)  # another log that doesn't match

    params = FilterParams(to_block=5)

    results = filter_logs(session, params)
    check_filter_results(params, results)

    assert len(results) == 1
    assert results[0] == log
Exemple #4
0
def test_filter_log_empty_params(session):
    log = construct_log(session)

    params = FilterParams()

    results = filter_logs(session, params)

    check_filter_results(params, results)

    assert len(results) == 1
    assert results[0] == log
Exemple #5
0
def test_filter_log_single_topic_out_of_position(session):
    topic = Hash32Factory()
    wrong_topic = Hash32Factory()
    construct_log(session, topics=(wrong_topic, topic))

    params = FilterParams(topics=(topic, ))

    results = filter_logs(session, params)
    check_filter_results(params, results)

    assert len(results) == 0
Exemple #6
0
def test_filter_log_single_address_match(session):
    address = AddressFactory()
    log = construct_log(session, address=address)

    params = FilterParams(address=address)

    results = filter_logs(session, params)

    check_filter_results(params, results)

    assert len(results) == 1
    assert results[0] == log
Exemple #7
0
def test_filter_log_single_topic_second_position(session):
    topic = Hash32Factory()
    log = construct_log(session, topics=(Hash32Factory(), topic))
    construct_log(session)  # another log that doesn't match

    params = FilterParams(topics=(None, topic))

    results = filter_logs(session, params)
    check_filter_results(params, results)

    assert len(results) == 1
    assert results[0] == log
    assert results[0].topics[1].topic == topic
Exemple #8
0
def test_filter_log_multiple_addresses(session):
    address = AddressFactory()
    other = AddressFactory()

    log = construct_log(session, address=address)
    construct_log(session)  # another log that doesn't match

    params = FilterParams(address=(other, address))

    results = filter_logs(session, params)

    check_filter_results(params, results)

    assert len(results) == 1
    assert results[0] == log
Exemple #9
0
def test_filter_log_multiple_topics(session):
    topic_0 = Hash32Factory()
    topic_1 = Hash32Factory()
    log = construct_log(session, topics=(topic_0, topic_1))
    construct_log(session)  # another log that doesn't match

    params = FilterParams(topics=(topic_0, topic_1))

    results = filter_logs(session, params)
    check_filter_results(params, results)

    assert len(results) == 1
    assert results[0] == log
    assert results[0].topics[0].topic == topic_0
    assert results[0].topics[1].topic == topic_1
Exemple #10
0
def test_filter_params_with_multiple_options_for_topic(session):
    topic_a = Hash32Factory()
    topic_b = Hash32Factory()
    log_a = construct_log(session, topics=(topic_a, ))
    log_b = construct_log(session, topics=(topic_b, ))
    construct_log(session)  # another log that doesn't match

    params = FilterParams(topics=((topic_a, topic_b), ))

    results = filter_logs(session, params)
    check_filter_results(params, results)

    assert len(results) == 2
    assert results[0] in {log_a, log_b}
    assert results[1] in {log_a, log_b}

    assert results[0].topics[0].topic in {topic_a, topic_b}
    assert results[1].topics[0].topic in {topic_a, topic_b}