"""Tests for GenreSubgenreMapping class.""" from unittest.mock import MagicMock from feed_sender.util import job_status from feed_sender.util.job_status import GetSql def test_get_sql_encoded_class(): """Test GetSql.sql_encoded.""" data = {'status': 'encoded', 'eqd_id': 1} mock_result = { 'query': 'UPDATE encoding_queue_detail ' 'SET encoding_ended = NOW(), status = "encoded", ' 'package_size = 0 ' 'WHERE encoding_queue_detail_id = %(eqd_id)s ' 'AND status = "encoding"', 'params': {'eqd_id': 1}} singleton = GetSql(data) actual = singleton.get() assert actual == mock_result def test_get_sql_encoding_class(): """Test GetSql.sql_encoding.""" data = {'status': 'encoding', 'eqd_id': 1} mock_result = { 'query': 'UPDATE encoding_queue_detail ' 'SET encoding_started = NOW(), status = "encoding", ' 'encoding_server = "Proper Encoder" ' 'WHERE encoding_queue_detail_id = %(eqd_id)s ' 'AND status = "ready_to_encode"', 'params': {'eqd_id': 1}} singleton = GetSql(data) actual = singleton.get() assert actual == mock_result def test_get_sql_delivered_class(): """Test GetSql.sql_delivered.""" data = {'status': 'delivered', 'eqd_id': 1} mock_result = { 'query': 'UPDATE encoding_queue_detail ' 'SET delivery_ended = NOW(), status = "delivered" ' 'WHERE encoding_queue_detail_id = %(eqd_id)s ' 'AND status = "delivering"', 'params': {'eqd_id': 1}} singleton = GetSql(data) actual = singleton.get() assert actual == mock_result def test_get_sql_delivering_class(): """Test GetSql.sql_delivering.""" data = {'status': 'delivering', 'eqd_id': 1} mock_result = { 'query': 'UPDATE encoding_queue_detail ' 'SET delivery_started = NOW(), status = "delivering", ' 'delivery_server = "Proper Delivery" ' 'WHERE encoding_queue_detail_id = %(eqd_id)s ' 'AND status = "encoded"', 'params': {'eqd_id': 1}} singleton = GetSql(data) actual = singleton.get() assert actual == mock_result def test_get_sql_delivery_failure_class(): """Test GetSql.sql_delivery_failure.""" data = { 'status': 'delivery_failure', 'eqd_id': 1, 'error_log': 'Permission denied.'} mock_result = { 'query': 'UPDATE encoding_queue_detail ' 'SET status = "delivery_failure", error_log = %(error_log)s ' 'WHERE encoding_queue_detail_id = %(eqd_id)s ' 'AND status = "delivering"', 'params': {'error_log': 'SFTP Error: Permission denied.', 'eqd_id': 1}} singleton = GetSql(data) actual = singleton.get() assert actual == mock_result def test_update_job_status_encoded(monkeypatch): """Test updating status of job.""" data = {'status': 'encoded', 'eqd_id': 1} mock_result = { 'query': 'UPDATE encoding_queue_detail ' 'SET encoding_ended = NOW(), status="encoded" ' 'WHERE encoding_queue_detail_id = %(eqd_id)s ' 'AND status = "encoding"', 'params': {'eqd_id': 1}} monkeypatch.setattr( GetSql, 'get', MagicMock( return_value=mock_result)) monkeypatch.setattr( job_status.mysql, 'get_dd_db_connection_pymysql', MagicMock( return_value='mysql+pymysql://paulo:password@test_host/some_db')) monkeypatch.setattr( job_status.mysql, 'execute_write_query', MagicMock( return_value=1)) actual_result = job_status.update(data) expected_result = True assert actual_result == expected_result def test_get_sql_system_cancelled_class(): """Test GetSql.sql_system_cancelled.""" data = { 'error_log': 'Duplicate job found', 'status': 'system_cancelled', 'eqd_id': 1} mock_result = { 'query': 'UPDATE encoding_queue_detail ' 'SET status = "system_cancelled", error_log = %(error_log)s ' 'WHERE encoding_queue_detail_id = %(eqd_id)s', 'params': {'error_log': 'Duplicate job found', 'eqd_id': 1}} singleton = GetSql(data) actual = singleton.get() assert actual == mock_result