def test_search(query: str, context: int, ignore_case: bool, expected: List[List[str]]) -> None: """Test search method. Args: query: the string to search for. context: the number of lines to provide as context for the search results. ignore_case: whether to perform a case-insensitive search. expected: the expected lines. """ entry = Entry( "search_dummy", { "ENTRYTYPE": "article", "abstract": "\n".join( [ "search_query", "something else", "Search_Query", "something else", ] * 2 ), }, ) results = entry.search(query, context=context, ignore_case=ignore_case) assert results == expected
def test_search_with_file() -> None: """Test the `cobib.database.Entry.search` method with associated file.""" entry = Entry("Cao_2019", EXAMPLE_ENTRY_DICT) entry.file = EXAMPLE_YAML_FILE # type: ignore results = entry.search("Chemical", context=0) expected = [ [" journal = {Chemical Reviews},"], [" publisher = {American Chemical Society ({ACS})},"], ["journal: Chemical Reviews"], ["publisher: American Chemical Society ({ACS})"], ] for res, exp in zip(results, expected): assert res == exp