/ tests / features / test_is_valid_sql_feature.py
test_is_valid_sql_feature.py
 1  import pandas as pd
 2  
 3  from evidently.legacy.features.is_valid_sql_feature import IsValidSQL
 4  from evidently.legacy.pipeline.column_mapping import ColumnMapping
 5  from evidently.legacy.utils.data_preprocessing import create_data_definition
 6  
 7  
 8  def test_is_valid_sql_feature():
 9      feature_generator = IsValidSQL("column_1")
10      data = pd.DataFrame(
11          dict(
12              column_1=[
13                  "SELECT * FROM users",  # Valid SQL (simple query)
14                  "SELECT id, address FROM users; SELECT count(id) FROM users",  # Valid SQL (multiple SQL queries)
15                  "INSERT INTO table",  # Invalid SQL (incomplete query)
16                  "SLECT * FROM users",  # Invalid SQL (typo)
17                  "SLECT * FROM users; SELECT id, address FROM users",  # Invalid SQL (1 invalid sub-query)
18              ]
19          )
20      )
21  
22      result = feature_generator.generate_feature(
23          data=data,
24          data_definition=create_data_definition(None, data, ColumnMapping()),
25      )
26  
27      expected_result = pd.DataFrame(dict(column_1=[True, True, False, False, False]))
28  
29      assert result.equals(expected_result)