"""Tests for DB operation module.""" from datetime import date from contracts import config from contracts.connectors import mysql from contracts.models import ( booked_vendor_contract, country, currency, product_split, product_territory_split, service_types, subaccount_royalty_collection, track_split, vendor_advance, vendor_contract, ) session = mysql._db_session() active_vendor_contract_data = [{'vendor_id': 1, 'vendor_contract_id': 1}] vendor_contract_data = [ { 'vendor_id': 1, 'id': 1, 'ringtone_publishing_type': 'both', 'oms_type': 'both', 'physical_track_publishing_type': 'both', 'service_type_id': None, 'currency_id': 1, 'royalty_collection_commission': None, 'royalty_collection_territory': None, 'cont_start': date(2022, 7, 1), 'cont_end': date(2029, 7, 1), 'payment_interval': 'month', }, { 'vendor_id': 2, 'id': 2, 'ringtone_publishing_type': 'orchard', 'oms_type': 'orchard', 'physical_track_publishing_type': 'orchard', 'service_type_id': 1, 'currency_id': 1, 'royalty_collection_commission': None, 'royalty_collection_territory': None, 'cont_start': date(2022, 7, 1), 'cont_end': date(2029, 7, 1), 'payment_interval': 'quarter', }, ] vendor_advance_data = [ { 'id': 2063, 'contract_id': 1, 'amount': 300000.0, 'date_paid': date(2016, 5, 2), 'exchange_rate': 1.0, }, { 'id': 2064, 'contract_id': 1, 'amount': 1050000.0, 'date_paid': date(2016, 6, 22), 'exchange_rate': 1.0, }, { 'id': 2065, 'contract_id': 1, 'amount': 150000.0, 'date_paid': date(2016, 6, 23), 'exchange_rate': 1.0, }, ] vendor_booked_contract_data = [ { 'contract_snapshot_id': 1, 'vendor_contract_id': 105, 'period_id': 99, 'vendor_id': 100, 'payment_interval': 'month', 'currency_id': 1, 'reserve_rate': 0.6, 'number_of_months_before_payout': 6, 'number_of_installments': 6, 'contract_terms': 'Some Text for Test Contract Term', }, { 'contract_snapshot_id': 2, 'vendor_contract_id': 106, 'period_id': 100, 'vendor_id': 100, 'payment_interval': 'quarter', 'currency_id': 1, 'reserve_rate': 0.1, 'number_of_months_before_payout': 2, 'number_of_installments': 3, 'contract_terms': 'Some Text for Test Contract Term', }, { 'contract_snapshot_id': 3, 'vendor_contract_id': 107, 'period_id': 110, 'vendor_id': 200, 'payment_interval': 'month', 'currency_id': 1, 'reserve_rate': 0, 'number_of_months_before_payout': 12, 'number_of_installments': 12, 'contract_terms': 'Some Text for Test Contract Term', }, ] service_types_data = [ {'id': 1, 'service_type': 'Artist Services'}, {'id': 2, 'service_type': 'Artist Distribution'}, {'id': 3, 'service_type': 'JV'}, ] product_split_data = [ { 'product_split_id': 1, 'vendor_id': 123, 'product_id': 3513135135, 'product_split_rate': 0.8, }, { 'product_split_id': 2, 'vendor_id': 123, 'product_id': 323335135, 'product_split_rate': 0.9, }, { 'product_split_id': 3, 'vendor_id': 125, 'product_id': 3518935135, 'product_split_rate': 0.7, }, ] track_split_data = [ { 'track_split_id': 1, 'vendor_id': 123, 'isrc': 'ES20I1310346', 'track_split': 0.6, 'track_unique_id': 123345, }, { 'track_split_id': 2, 'vendor_id': 123, 'isrc': 'ES20I1310347', 'track_split': 0.7, 'track_unique_id': 123346, }, { 'track_split_id': 3, 'vendor_id': 124, 'isrc': 'ES20I1310348', 'track_split': 0.8, 'track_unique_id': 123347, }, ] product_territory_split_data = [ { 'product_id': 191018337490, 'vendor_id': 25824, 'split_rate': 0.56, 'country_id': 2, }, { 'product_id': 191018333454, 'vendor_id': 25824, 'split_rate': 0.5, 'country_id': 1, }, ] country_data = [ { 'id': 1, 'name': 'USA', 'country_code': 'US', 'abbrivation': 'US', 'continent': 'North America', 'latitude': 37.09024, 'longitude': -95.712891, 'iso3166a3': 'USA', 'continent_id': 5, }, { 'id': 2, 'name': 'Canada', 'country_code': 'CA', 'abbrivation': 'CA', 'continent': 'North America', 'latitude': 56.130366, 'longitude': -106.346771, 'iso3166a3': 'CAN', 'continent_id': 5, }, ] subaccount_royalty_collection_data = [ { 'subaccount_royalty_collection_id': 1, 'subaccount_id': 1, 'active': False, }, { 'subaccount_royalty_collection_id': 2, 'subaccount_id': 1, 'active': True, }, ] subaccount_royalty_collection_territories_data = [ { 'subaccount_royalty_collection_territories_id': 1, 'subaccount_royalty_collection_id': 1, 'subaccount_royalty_collection_territory': 1, }, { 'subaccount_royalty_collection_territories_id': 2, 'subaccount_royalty_collection_id': 2, 'subaccount_royalty_collection_territory': 2, }, ] currency_data = [{'id': 1, 'ISO_4217_code': 'USD', 'symbol_html_entity_code': 'USD'}] def create_tables(): """Create tables defined in 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_currency_table(): """Insert data in the currency table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute(currency.Currency.__table__.insert().values(currency_data)) session.commit() session.close() def seed_vendor_contract_table(): """Insert test data in vendor_contract table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute( vendor_contract.VendorContract.__table__.insert().values(vendor_contract_data) ) session.commit() session.close() def seed_vendor_advance_table(): """Insert test data in vendor_contract table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute( vendor_advance.VendorAdvance.__table__.insert().values(vendor_advance_data) ) session.commit() session.close() def seed_booked_vendor_contract_table(): """Insert test data in booked_vendor_contract table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute( booked_vendor_contract.BookedVendorContract.__table__.insert().values( vendor_booked_contract_data ) ) session.commit() session.close() def seed_service_types_table(): """Insert test data in service_type table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute( service_types.ServiceType.__table__.insert().values(service_types_data) ) session.commit() session.close() def seed_product_split_table(): """Insert test data in product_split table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute( product_split.ProductSplit.__table__.insert().values(product_split_data) ) session.commit() session.close() def seed_track_split_table(): """Insert test data in track_split table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute(track_split.TrackSplit.__table__.insert().values(track_split_data)) session.commit() session.close() def seed_product_territory_split_table(): """Insert test data in product_territory_split table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute( product_territory_split.ProductTerritorySplit.__table__.insert().values( product_territory_split_data ) ) session.commit() session.close() def seed_country_table(): """Insert test data in product_territory_split table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return session.execute(country.Country.__table__.insert().values(country_data)) session.commit() session.close() def seed_subaccount_royalty_collection_table(): """Insert test data in subaccount_royalty_collection table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return table = subaccount_royalty_collection.SubaccountRoyaltyCollection.__table__ session.execute(table.insert().values(subaccount_royalty_collection_data)) session.commit() session.close() def seed_subaccount_royalty_collection_territories_table(): """Insert test data in subaccount_royalty_collection_territories table.""" if config.ENVIRONMENT != config.TEST_ENVIRONMENT: return table = ( subaccount_royalty_collection.SubaccountRoyaltyCollectionTerrittories.__table__ ) session.execute( table.insert().values(subaccount_royalty_collection_territories_data) ) session.commit() session.close()