"""Test salessheets module that takes data from art_relation database.""" from flexmock import flexmock from sqlalchemy.exc import SQLAlchemyError from label_copy_export.connectors import mysql from label_copy_export.constants import models from label_copy_export.models import label_copy_export def test_get_album_valid(): """Test getting album from art_relation.""" product_id = '1' test_result = {models.PRODUCT_ID: product_id} result_proxy = flexmock( fetchone=lambda: test_result ) ar_db_session_scope = flexmock( execute=lambda query, data: result_proxy ) (flexmock(mysql) .should_receive('ar_db_session_scope') .and_return(ar_db_session_scope)) result = label_copy_export.get_distribution_format_name(product_id) assert result.message == test_result def test_get_album_without_product_id(): """Test getting album without product_id.""" product_id = None result = label_copy_export.get_distribution_format_name(product_id) assert result.message == {} def test_get_album_exception(): """Test getting album for valid exception.""" product_id = '1' (flexmock(mysql) .should_receive('ar_db_session_scope') .and_raise(SQLAlchemyError)) result = label_copy_export.get_distribution_format_name(product_id) assert result.status == 500 def test_get_album_no_data(): """Test getting album without necessary data in db.""" product_id = '1' result_proxy = flexmock( fetchone=lambda: None ) session_scope = flexmock( execute=lambda query, data: result_proxy ) (flexmock(mysql) .should_receive('ar_db_session_scope') .and_return(session_scope)) result = label_copy_export.get_distribution_format_name(product_id) assert result.status == 404