ai-content-maker/.venv/Lib/site-packages/spacy_loggers/tests/test_lookup.py

92 lines
1.8 KiB
Python

import pytest
import re
from spacy_loggers.util import matcher_for_regex_patterns
from .util import load_logger_from_config
valid_config_string = """
[nlp]
lang = "en"
pipeline = ["tok2vec"]
[components]
[components.tok2vec]
factory = "tok2vec"
[training]
[training.logger]
@loggers = "spacy.LookupLogger.v1"
patterns = ["^[pP]ytorch", "zeppelin" ]
"""
invalid_config_string_empty = """
[nlp]
lang = "en"
pipeline = ["tok2vec"]
[components]
[components.tok2vec]
factory = "tok2vec"
[training]
[training.logger]
@loggers = "spacy.LookupLogger.v1"
patterns = []
"""
invalid_config_string_incorrect_pattern = """
[nlp]
lang = "en"
pipeline = ["tok2vec"]
[components]
[components.tok2vec]
factory = "tok2vec"
[training]
[training.logger]
@loggers = "spacy.LookupLogger.v1"
patterns = [")"]
"""
def test_load_from_config():
valid_logger, nlp = load_logger_from_config(valid_config_string)
valid_logger(nlp)
with pytest.raises(ValueError, match="at least one pattern"):
invalid_logger, nlp = load_logger_from_config(invalid_config_string_empty)
invalid_logger(nlp)
with pytest.raises(ValueError, match="couldn't be compiled"):
invalid_logger, nlp = load_logger_from_config(
invalid_config_string_incorrect_pattern
)
invalid_logger(nlp)
def test_custom_stats_matcher():
patterns = ["^[pP]ytorch", "zeppelin$"]
inputs = [
"no match",
"torch",
"pYtorch",
"pytorch",
"Pytorch 1.13",
"led zeppelin",
]
outputs = [False, False, False, True, True, True]
matcher = matcher_for_regex_patterns(patterns)
assert [matcher(x) for x in inputs] == outputs
with pytest.raises(ValueError, match="couldn't be compiled"):
matcher_for_regex_patterns([")"])