"""Tests for handlers.""" from unittest.mock import MagicMock from oto import response from ows_product_physical.constant import header from ows_product_physical.logic import product_physical def test_handler_get_product_by_id_success( monkeypatch, client, valid_get_header, feature_engine): """Test `GET /product/{productId}` handler success state.""" monkeypatch.setattr( product_physical, 'fetch_by_id', value=MagicMock( return_value=response.Response(message={ 'project_id': 47}))) result = client.get('/product/1234', headers=valid_get_header) assert result.status_code == 200 assert product_physical.fetch_by_id.called def test_handler_get_product_by_id_not_found_error( db_fixture, client, valid_get_header, feature_engine): """Test `GET /product/{productId}` for product that doesn't exist.""" result = client.get('/product/1234', headers=valid_get_header) assert result.status_code == 404 def test_handler_get_product_by_id_header_error( monkeypatch, client, fixture_response_ok, valid_get_header, feature_engine): """Test `GET /product/{productId}` handler fails on invalid headers.""" invalid_header = valid_get_header invalid_header[header.GRASS_ACCOUNT_TYPE] = 'fubar' result = client.get('/product/1234', headers=invalid_header) assert result.status_code == 400