"""Unit tests for VendorRole model.""" from unittest import mock from permissions.models import vendor_role @mock.patch('permissions.models.vendor_role.VendorRole') def test_vendor_role_ids_from_label_profile_roles_all_valid(vendor_role_cls_mock): """Test vendor_role_ids_from_label_profile_roles behavior when all roles are valid.""" roles = ['marketing'] session = mock.Mock() filter_mock = mock.Mock() session.query.return_value.filter = filter_mock filter_mock.return_value.all.return_value = [mock.Mock(id=1)] result = vendor_role.vendor_role_ids_from_label_profile_roles(session, roles) assert result == [1] session.query.assert_called_with(vendor_role_cls_mock) vendor_role_cls_mock.role.in_.assert_called_with(['Marketing']) @mock.patch('permissions.models.vendor_role.g') def test_vendor_role_ids_from_label_profile_roles_invalid(g_mock, app_context): """Test vendor_role_ids_from_label_profile_roles behavior when a role is invalid.""" roles = ['catalog', 'napping'] session = mock.Mock() session.query.return_value.filter.return_value.all.return_value = [ mock.Mock(id=1, role='Catalog') ] result = vendor_role.vendor_role_ids_from_label_profile_roles(session, roles) assert result == [1] g_mock.log.warning.assert_called_with( 'Could not translate all label profile roles into vendor_roles', resources={ 'label_profile_roles': roles, 'vendor_roles': ['Catalog'], }, )