"""Set up unit test environment.""" import pytest from tests.unit import db_operations from vector_job_rules.constants.mysql import DATE_RESPONSE_FORMAT @pytest.fixture def db_fixture(): """Set up the tables and seed data.""" db_operations.create_tables() db_operations.seed_rule_table() db_operations.seed_rule_condition_field_table() db_operations.seed_rule_condition_data_table() def get_rules_data(): """Get rules response data.""" return [ { 'description': 'Rule 1', 'last_updated': db_operations.now_datetime, 'name': 'condition_5', 'priority': 1, 'rule_condition_field_id': 5, 'rule_condition_field_type': 'condition_5_type', 'rule_condition_id': 10, 'rule_condition_value': 'test', 'rcf_description': 'Condition 5', 'rule_id': 1, 'status': 'active', 'updated_by': 100, }, { 'description': 'Rule 1', 'last_updated': db_operations.now_datetime, 'name': 'condition_6', 'priority': 1, 'rule_condition_field_id': 6, 'rule_condition_field_type': 'condition_6_type', 'rule_condition_id': 11, 'rule_condition_value': 'test2', 'rcf_description': 'Condition 6', 'rule_id': 1, 'status': 'active', 'updated_by': 100, }, ] @pytest.fixture def get_rules_fixture(): """Get rules response data.""" return get_rules_data() @pytest.fixture def get_fields_fixture(): """Get condition fields response data.""" return [ { 'rule_condition_field_id': 5, 'name': 'condition_5', 'rule_condition_field_type': 'condition_5_type', 'description': 'Condition 5', }, { 'rule_condition_field_id': 6, 'name': 'condition_6', 'rule_condition_field_type': 'condition_6_type', 'description': 'Condition 6', }, ] def get_rules(): """Get rules formatted from logic layer.""" return [ { 'id': 1, 'conditions': [ { 'rule_condition_field_id': 5, 'rule_condition_field_type': 'condition_5_type', 'name': 'condition_5', 'rule_condition_field_description': 'Condition 5', 'rule_condition_value': 'test', }, { 'rule_condition_field_id': 6, 'rule_condition_field_type': 'condition_6_type', 'name': 'condition_6', 'rule_condition_field_description': 'Condition 6', 'rule_condition_value': 'test2', }, ], 'status': 'active', 'priority': 1, 'description': 'Rule 1', 'last_updated': db_operations.now_datetime.strftime(DATE_RESPONSE_FORMAT), 'updated_by': 100, } ] def get_rules_formatted(): """Get rules formatted from logic layer.""" return {'items': get_rules()} @pytest.fixture def get_rules_formatted_fixture(): """Get rules formatted.""" return get_rules_formatted() def get_rules_formatted_empty_fixture(): """Get rules formatted empty from logic layer.""" return {'items': []}