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)
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)
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
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)
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)
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)