"""Test vendor_agreement model.""" from tests.unit import db_utils from users.models import vendor_agreement def test_vendor_agreemnent_class(): """Test create a VendorAgreementObject.""" data = { 'vendor_id': 123, 'user_id': 456, 'opt_in_preference_id': 345, 'impersonator_user_id': '1666', } new_vendor_agreement = vendor_agreement.VendorAgreement(**data) result = new_vendor_agreement.to_dict() assert result.get('vendor_id') == 123 assert result.get('user_id') == 456 assert result.get('opt_in_preference_id') == 345 @db_utils.test_schema def test_create_vendor_agreement(): """Test create a vendor agreement in db.""" data = {'vendor_id': 123, 'user_id': 456, 'opt_in_preference_id': 345} expected_result = { 'opt_in_preference_id': 345, 'vendor_agreement_id': 1, 'user_id': 456, 'vendor_id': 123, } result = vendor_agreement.create_vendor_agreement(data) assert result.message.get('opt_in_preference_id') == expected_result.get('opt_in_preference_id') assert result.message.get('vendor_id') == expected_result.get('vendor_id') assert result.message.get('vendor_agreement_id') == expected_result.get('vendor_agreement_id') assert result.message.get('user_id') == expected_result.get('user_id') @db_utils.test_schema def test_create_vendor_agreement_with_impersonator_id(): """Test create a vendor agreement in db.""" data = { 'vendor_id': 123, 'user_id': 456, 'opt_in_preference_id': 345, 'impersonator_user_id': '1555', } expected_result = { 'opt_in_preference_id': 345, 'vendor_agreement_id': 1, 'user_id': 456, 'vendor_id': 123, 'impersonator_user_id': '1555', } result = vendor_agreement.create_vendor_agreement(data) assert result.message.get('opt_in_preference_id') == expected_result.get('opt_in_preference_id') assert result.message.get('vendor_id') == expected_result.get('vendor_id') assert result.message.get('vendor_agreement_id') == expected_result.get('vendor_agreement_id') assert result.message.get('user_id') == expected_result.get('user_id') assert result.message.get('impersonator_user_id') == expected_result.get('impersonator_user_id') @db_utils.test_schema def test_get_vendor_agreement(): """Test get a vendor agreement from db.""" data = { 'vendor_agreement_id': 1, 'vendor_id': 123, 'user_id': 456, 'opt_in_preference_id': 345, 'impersonator_user_id': 555, } db_utils.seed_models(vendor_agreement.VendorAgreement(**data)) result = vendor_agreement.get_vendor_agreement( data.get('vendor_id'), data.get('opt_in_preference_id'), False ) assert result.message.get('vendor_agreement_id') == data.get('vendor_agreement_id') assert result.message.get('vendor_id') == data.get('vendor_id') assert result.message.get('opt_in_preference_id') == data.get('opt_in_preference_id') assert result.message.get('user_id') == data.get('user_id') @db_utils.test_schema def test_get_vendor_agreement_impersonator_user_id(): """Test get a vendor agreement from db with not found status.""" data = { 'vendor_agreement_id': 1, 'vendor_id': 123, 'user_id': 456, 'opt_in_preference_id': 345, 'impersonator_user_id': 555, } db_utils.seed_models(vendor_agreement.VendorAgreement(**data)) result = vendor_agreement.get_vendor_agreement( data.get('vendor_id'), data.get('opt_in_preference_id'), True ) assert result.status == 404 @db_utils.test_schema def test_get_vendor_agreement_not_found(): """Test get a vendor agreement from db with not found status.""" data = { 'vendor_agreement_id': 1, 'vendor_id': 123, 'user_id': 456, 'opt_in_preference_id': 345, 'impersonator_user_id': None, } db_utils.seed_models(vendor_agreement.VendorAgreement(**data)) result = vendor_agreement.get_vendor_agreement(444, data.get('opt_in_preference_id'), False) assert result.status == 404 @db_utils.test_schema def test_delete_vendor_agreement(): """Test deleting a vendor agreement.""" data = { 'vendor_agreement_id': 1, 'vendor_id': 123, 'user_id': 456, 'opt_in_preference_id': 345, 'impersonator_user_id': None, } db_utils.seed_models(vendor_agreement.VendorAgreement(**data)) result = vendor_agreement.delete_vendor_agreement(1) assert result.status == 204 @db_utils.test_schema def test_delete_vendor_agreement_not_found(): """Test deleting a vendor agreement.""" result = vendor_agreement.delete_vendor_agreement(1) assert result.status == 404