"""Utils for database operations. Note: this is strange to have methods for tests that is in the application directory. It probably should be in tests since we aren't looking to get metrics like code coverage. """ import datetime from vector_job_rules import config from vector_job_rules.connectors import mysql from vector_job_rules.models.rule import Rule from vector_job_rules.models.rule_condition import RuleCondition from vector_job_rules.models.rule_condition_field import RuleConditionField now_datetime = datetime.datetime.utcnow() rule_data = [ { 'rule_id': 1, 'status': 'active', 'priority': 1, 'description': 'Rule 1', 'last_updated': now_datetime, 'updated_by': 100, } ] rule_condition_field_data = [ { 'rule_condition_field_id': 5, 'name': 'condition_5', 'type': 'condition_5_type', 'description': 'Condition 5', }, { 'rule_condition_field_id': 6, 'name': 'condition_6', 'type': 'condition_6_type', 'description': 'Condition 6', }, ] rule_condition_data = [ { 'rule_condition_id': 10, 'rule_id': 1, 'rule_condition_field_id': 5, 'rule_condition_value': 'test', }, { 'rule_condition_id': 11, 'rule_id': 1, 'rule_condition_field_id': 6, 'rule_condition_value': 'test2', }, ] def create_tables(): """Create tables defined in vector_job_rules.models.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return mysql.BaseModel.metadata.drop_all(mysql.db_engine) mysql.BaseModel.metadata.create_all(mysql.db_engine) def seed_rule_table(): """Insert test data into rule table.""" with mysql.db_session() as session: if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute(Rule.__table__.insert().values(rule_data)) session.commit() session.close() def seed_rule_condition_field_table(): """Insert test data into rule_condition_field table.""" with mysql.db_session() as session: if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute( RuleConditionField.__table__.insert().values(rule_condition_field_data) ) session.commit() session.close() def seed_rule_condition_data_table(): """Insert test data into rule_condition table.""" with mysql.db_session() as session: if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute(RuleCondition.__table__.insert().values(rule_condition_data)) session.commit() session.close()