"""Tests for the graphql_router model.""" from unittest.mock import call import pytest from product_review.constants import context from product_review.models import graphql_router @pytest.mark.parametrize( 'mock_graphql_response, expected_result', [ ({ 'vendor': { 'productManager': 123 } }, 123), ({ 'vendor': { 'productManager': None } }, None), ] ) def test_get_vendor_product_manager(mocker, mock_graphql_response, expected_result): """Test get vendor product manager.""" mock_call = mocker.patch.object( graphql_router, 'make_request', return_value=mock_graphql_response ) result = graphql_router.get_vendor_product_manager(1234) assert result == expected_result assert mock_call.call_args_list == [ call( 'query vendorProductManager($vendorId: Int!) { vendor(vendorId: $vendorId) { productManager } }', # noqa:E501 {'vendorId': 1234}, context.GRAPHQL_USER_HEADERS ) ] @pytest.mark.parametrize( 'mock_graphql_response, expected_result', [ ({ 'vendor': { 'companyBrand': { 'name': 'theorchard' } } }, {'name': 'theorchard'}), ({ 'vendor': { 'companyBrand': None } }, None), ] ) def test_get_vendor_company_brand(mocker, mock_graphql_response, expected_result): """Test get vendor company brand.""" mock_call = mocker.patch.object( graphql_router, 'make_request', return_value=mock_graphql_response ) result = graphql_router.get_vendor_company_brand(1234) assert result == expected_result assert mock_call.call_args_list == [ call( 'query vendorCompanyBrand($vendorId: Int!) { vendor(vendorId: $vendorId) { companyBrand { name } } }', # noqa:E501 {'vendorId': 1234}, context.GRAPHQL_USER_HEADERS ) ]