"""Testing the USPhysicalRetailerViewCoop.""" from collections import OrderedDict from decimal import Decimal import pytest from reporting.constants.field import LIMIT from reporting.models.us_physical_retailer_view_coop import ( USPhysicalRetailerViewCoop, ) def default_params(): """Get the default params.""" return { 'param_artist': [], 'param_inventory_data': True, 'param_product_name': [], 'param_retailer': [], 'param_product_type': [], 'param_sales_data': True, 'param_release_date': '', 'param_sub_label': [], 'param_vendor_id': [9], } def test_standard_query(): """Test the standard query.""" results = USPhysicalRetailerViewCoop.all(default_params()) expected = OrderedDict() expected['Retailer'] = 'Retailer9' expected['Retailer Code'] = 9 expected['Product Name'] = 'ProductName9' expected['Artist'] = 'Artist9' expected['Label Name'] = 'Label9' expected['Sub Label'] = 'SubLabel9' expected['Product Code'] = 'ProductCode9' expected['UPC/EAN'] = '9' expected['Release Date'] = '2016-01-09' expected['Product Type'] = 'CD9' expected['Format'] = 'Album' expected['Units Per Set'] = 1 expected['Display Configuration'] = '1 x CD Album' expected['Exclusive'] = 'N' expected['Open Orders'] = 1 expected['Backorders'] = 1 expected['First4WeekS#'] = 1 expected['5DayS#'] = 1 expected['5DayR#'] = 1 expected['Last4WkS#'] = 1 expected['Last4WkR#'] = 1 expected['MTDS#'] = 1 expected['MTDR#'] = 1 expected['CYTDS#'] = 1 expected['CYTDR#'] = 1 expected['CumTDS#'] = 1 expected['CumTDR#'] = 1 expected['Total RTD Co-Op $'] = Decimal('6.00') expected['Closed Co-Op $'] = 3 expected['Open Co-Op $'] = Decimal('3.00') assert results.message['content'][0] == expected assert len(results.message['content']) == 1 def test_limit(): """Test limit.""" params = default_params() params[LIMIT] = 1 results = USPhysicalRetailerViewCoop.all(params) assert len(results.message['content']) == 1 @pytest.mark.parametrize( 'param,column_name,value', [ ('param_artist', 'Artist', 'Artist9'), ('param_product_type', 'Product Type', 'CD9'), ('param_product_name', 'Product Name', 'ProductName9'), ('param_sub_label', 'Sub Label', 'SubLabel9'), ('param_release_date', 'Release Date', '2016-01-09'), ('param_retailer', 'Retailer', 'Retailer9'), ], ) def test_filters(param, column_name, value): """Test filters.""" params = default_params() params[param] = [value] results = USPhysicalRetailerViewCoop.all(params) assert results.message['content'][0][column_name] == value assert len(results.message['content']) == 1 def test_vendor_id(): """Test vendor id.""" params = default_params() params['param_vendor_id'] = [9] results = USPhysicalRetailerViewCoop.all(params) assert results.message['content'][0]['Artist'] == 'Artist9' assert len(results.message['content']) == 1 def test_subaccount_id(): """Test vendor id.""" params = default_params() params['param_vendor_id'] = [7] params['param_subacct_id'] = [7] results = USPhysicalRetailerViewCoop.all(params) assert results.message['content'][0]['Artist'] == 'Artist7' assert len(results.message['content']) == 1 def test_get_filters(): """Test getting the filter values.""" vendor_id = 7 subaccount_id = None results = USPhysicalRetailerViewCoop.filter(vendor_id, subaccount_id) assert results.message == { 'artist': ['Artist7', 'Artist8'], 'product_name': ['ProductName7', 'ProductName8'], 'product_type': ['CD7', 'CD8'], 'sub_label': ['SubLabel7', 'SubLabel8'], 'retailer': ['Retailer7', 'Retailer8'], 'product_code': ['ProductCode7', 'ProductCode8'], 'upc_ean': ['7', '8'], } def test_get_filters_with_subaccount(): """Test getting the filter values with a sub-account.""" vendor_id = 7 subaccount_id = 7 results = USPhysicalRetailerViewCoop.filter(vendor_id, subaccount_id) assert results.message == { 'artist': ['Artist7'], 'product_name': ['ProductName7'], 'product_type': ['CD7'], 'sub_label': ['SubLabel7'], 'retailer': ['Retailer7'], 'product_code': ['ProductCode7'], 'upc_ean': ['7'], }