"""Get product genres functional test.""" import json from project_manager.constant import header_const from tests.common_assert import assert_header from tests.utils import logger def test_get_product_genres( product_genres_db_fixture, client, header, mocker): """Assert GET /product/genres returns a list of product genre options.""" logger.patch(mocker) request_url = '/product/genres' server_response = client.get(request_url, headers=header) response_message = json.loads(server_response.data.decode()) expected_message = [{ 'id': 6, 'name': 'Alternative' }, { 'id': 2, 'name': 'Electronic' }, { 'id': 5, 'name': 'Folk' }, { 'id': 3, 'name': 'Metal' }, { 'id': 4, 'name': 'Punk' }, { 'id': 1, 'name': 'Rock' }] assert server_response.status_code == 200 assert response_message == expected_message assert_header(header, server_response.headers) logger.assert_logger_calls( status=server_response.status_code, verb='GET', path=request_url, resources=dict( account_type=header[header_const.GRASS_ACCOUNT_TYPE], account_id=str(header[header_const.GRASS_ACCOUNT_ID])))