Example #1
0
def store_node_db_data(storage: CrawlerNodeStorage, nodes: List, states: List):
    for idx, node in enumerate(nodes):
        storage.store_node_metadata(node=node)
        if idx == 0:
            # first item in list is teacher
            storage.store_current_teacher(
                teacher_checksum=node.checksum_address)

    for state in states:
        storage.store_state_metadata(state=state)
Example #2
0
def test_storage_store_current_retrieval(sqlite_connection):
    node_storage = CrawlerNodeStorage(storage_filepath=IN_MEMORY_FILEPATH)

    teacher_checksum = '0x123456789'
    node_storage.store_current_teacher(teacher_checksum=teacher_checksum)
    # check current teacher
    verify_current_teacher(sqlite_connection, teacher_checksum)

    # update current teacher
    updated_teacher_checksum = '0x987654321'
    node_storage.store_current_teacher(teacher_checksum=updated_teacher_checksum)
    # check current teacher
    verify_current_teacher(sqlite_connection, updated_teacher_checksum)
Example #3
0
def test_node_client_get_current_teacher_checksum(tempfile_path):
    node_storage = CrawlerNodeStorage(storage_filepath=tempfile_path)
    teacher_checksum = '0x123456789'
    node_storage.store_current_teacher(teacher_checksum=teacher_checksum)

    node_db_client = CrawlerStorageClient(db_filepath=tempfile_path)

    result = node_db_client.get_current_teacher_checksum()
    assert result == teacher_checksum

    new_teacher_checksum = '0x9876543221'
    node_storage.store_current_teacher(teacher_checksum=new_teacher_checksum)
    result = node_db_client.get_current_teacher_checksum()
    assert result == new_teacher_checksum
Example #4
0
def test_storage_db_clear_not_metadata():
    node_storage = CrawlerNodeStorage(storage_filepath=IN_MEMORY_FILEPATH)

    # store some data
    node = create_random_mock_node()
    node_storage.store_node_metadata(node=node)

    state = create_specific_mock_state()
    node_storage.store_state_metadata(state=state)

    teacher_checksum = '0x123456789'
    node_storage.store_current_teacher(teacher_checksum)

    verify_all_db_tables(node_storage.db_conn, expect_empty=False)

    # only clear certificates data
    node_storage.clear(metadata=False, certificates=True)

    # db tables should not have been cleared
    verify_all_db_tables(node_storage.db_conn, expect_empty=False)
Example #5
0
def test_storage_db_clear_only_metadata_not_certificates(sqlite_connection):
    node_storage = CrawlerNodeStorage(storage_filepath=IN_MEMORY_FILEPATH)

    # store some data
    node = create_random_mock_node()
    node_storage.store_node_metadata(node=node)

    state = create_specific_mock_state()
    node_storage.store_state_metadata(state=FleetSensor.abridged_state_details(state))

    teacher_checksum = '0x123456789'
    node_storage.store_current_teacher(teacher_checksum)

    verify_all_db_tables(sqlite_connection, expect_empty=False)

    # clear metadata tables
    node_storage.clear(metadata=True, certificates=False)

    # db tables should have been cleared
    verify_all_db_tables(sqlite_connection, expect_empty=True)
Example #6
0
def test_storage_db_clear():
    node_storage = CrawlerNodeStorage(storage_filepath=IN_MEMORY_FILEPATH)
    verify_all_db_tables_exist(node_storage.db_conn)

    # store some data
    node = create_random_mock_node()
    node_storage.store_node_metadata(node=node)

    state = create_specific_mock_state()
    node_storage.store_state_metadata(
        state=FleetStateTracker.abridged_state_details(state))

    teacher_checksum = '0x123456789'
    node_storage.store_current_teacher(teacher_checksum)

    verify_all_db_tables(node_storage.db_conn, expect_empty=False)

    # clear tables
    node_storage.clear()

    # db tables should have been cleared
    verify_all_db_tables(node_storage.db_conn, expect_empty=True)