def test_extract_patterns( lookup_tables: Dict[Text, List[Text]], regex_features: Dict[Text, Text], expected_patterns: Dict[Text, Text], ): training_data = TrainingData() if lookup_tables: training_data.lookup_tables = [lookup_tables] if regex_features: training_data.regex_features = [regex_features] actual_patterns = pattern_utils.extract_patterns(training_data) assert actual_patterns == expected_patterns
def test_extract_patterns_use_only_lookup_tables_or_regex_features( lookup_tables: Dict[Text, List[Text]], regex_features: Dict[Text, Text], use_lookup_tables: bool, use_regex_features: bool, expected_patterns: Dict[Text, Text], ): training_data = TrainingData() if lookup_tables: training_data.lookup_tables = [lookup_tables] if regex_features: training_data.regex_features = [regex_features] actual_patterns = pattern_utils.extract_patterns( training_data, use_lookup_tables=use_lookup_tables, use_regexes=use_regex_features, ) assert actual_patterns == expected_patterns
def test_extract_patterns_use_only_entities_regexes( entity: Text, regex_features: Dict[Text, Text], expected_patterns: Dict[Text, Text]): training_data = TrainingData() if entity: training_data.training_examples = [ Message(data={ "text": "text", "entities": [{ "entity": entity, "value": "text" }] }) ] if regex_features: training_data.regex_features = [regex_features] actual_patterns = pattern_utils.extract_patterns(training_data, use_only_entities=True) assert actual_patterns == expected_patterns
def test_regex_validation( lookup_tables: Dict[Text, List[Text]], regex_features: Dict[Text, Text], use_lookup_tables: bool, use_regex_features: bool, ): """Tests if exception is raised when regex patterns are invalid.""" training_data = TrainingData() if lookup_tables: training_data.lookup_tables = [lookup_tables] if regex_features: training_data.regex_features = [regex_features] with pytest.raises(Exception) as e: pattern_utils.extract_patterns( training_data, use_lookup_tables=use_lookup_tables, use_regexes=use_regex_features, ) assert "Model training failed." in str(e.value) assert "not a valid regex." in str(e.value) assert "Please update your nlu training data configuration" in str(e.value)