"""Test JobInput.""" import pytest from sqlalchemy import select from video import config from video.connectors import mysql from video.models.sql.classes import job_input as job_input_class from tests.unit import db_utils @db_utils.test_schema def test_job_input() -> None: """Test JobInput.""" job_input = job_input_class.JobInput( primary_key=123, job_id=456, field_type="string", name="letters", value="abc", context_id=44, ) db_utils.seed_models([job_input]) with mysql.db_session() as session: query_response = session.execute( select(job_input_class.JobInput).where( job_input_class.JobInput.primary_key == 123 ) ).scalar_one_or_none() assert query_response is not None insert_datetime = query_response.datetime.strftime( config.RFC3339_DATETIME_FORMAT ) query_response_dict = query_response.to_dict() assert query_response_dict == { "id": job_input.primary_key, "job_id": job_input.job_id, "type": job_input.field_type, "name": job_input.name, "value": job_input.value, "context_id": job_input.context_id, "datetime": insert_datetime, } @db_utils.test_schema def test_job_input_warning() -> None: """Test JobInput warning.""" with pytest.raises(ValueError) as execinfo: long_value = "x " * 900 job_input_class.JobInput( primary_key=123, job_id=456, field_type="string", name="letters", value=long_value, context_id=44, ) assert execinfo.type is ValueError assert execinfo.value.args[0] == ( "JobInputs column `value` has a limit of 900 chars." )