"""Functional tests of the get_product_by_display_upc endpoint. GET /vendor//display_upc/ """ from tests.testutils import db @db.test_schema def test_get_product_by_display_upc( client, test_valid_product): """Test get_product_by_display_upc is successful.""" db.insert_vw_product() request_url = ( '/vendor/{vendor_id}' '/display_upc/{display_upc}' '?context_type={context_type}').format( vendor_id=test_valid_product['vendor_id'], display_upc=test_valid_product['display_upc'], context_type=test_valid_product['context_type']) server_response = client.get(request_url) assert server_response.status_code == 200 @db.test_schema def test_get_deleted_product_by_display_upc( client, test_deleted_product): """Test get_product_by_display_upc with show_deletions enabled.""" db.insert_vw_product() request_url = ( '/vendor/{vendor_id}' '/display_upc/{display_upc}' '?context_type={context_type}&show_deletions=true').format( vendor_id=test_deleted_product['vendor_id'], display_upc=test_deleted_product['display_upc'], context_type=test_deleted_product['context_type']) server_response = client.get(request_url) assert server_response.status_code == 200 @db.test_schema def test_get_product_by_display_upc_not_found(client, test_invalid_product): """Test get_product_by_display_upc fails when not found.""" db.insert_vw_product() request_url = ( '/vendor/{vendor_id}' '/display_upc/{display_upc}' '?context_type={context_type}').format( vendor_id=test_invalid_product['vendor_id'], display_upc=test_invalid_product['display_upc'], context_type=test_invalid_product['context_type']) server_response = client.get(request_url) assert server_response.status_code == 404 def test_get_product_by_display_upc_invalid_headers( client, test_valid_product, not_valid_headers): """Test invalid headers.""" request_url = ( '/vendor/{vendor_id}' '/display_upc/{display_upc}' '?context_type={context_type}').format( vendor_id=test_valid_product['vendor_id'], display_upc=test_valid_product['display_upc'], context_type=test_valid_product['context_type']) server_response = client.get(request_url, headers=not_valid_headers) assert server_response.status_code == 403 @db.test_schema def test_get_product_by_display_upc_valid_headers( client, test_valid_product, valid_headers): """Test valid headers.""" db.insert_vw_product() request_url = ( '/vendor/{vendor_id}' '/display_upc/{display_upc}' '?context_type={context_type}').format( vendor_id=test_valid_product['vendor_id'], display_upc=test_valid_product['display_upc'], context_type=test_valid_product['context_type']) server_response = client.get(request_url, headers=valid_headers) assert server_response.status_code == 200 def test_get_product_by_display_upc_no_context_type( client, test_valid_product): """Test no context_type query.""" request_url = ( '/vendor/{vendor_id}' '/display_upc/{display_upc}').format( vendor_id=test_valid_product['vendor_id'], display_upc=test_valid_product['display_upc']) server_response = client.get(request_url) assert server_response.status_code == 400 @db.test_schema def test_get_product_by_display_upc_invalid_context_type( client, test_valid_product, invalid_context_type): """Test passing an invalid context_type.""" db.insert_vw_product() request_url = ( '/vendor/{vendor_id}' '/display_upc/{display_upc}' '?context_type={context_type}').format( vendor_id=test_valid_product['vendor_id'], display_upc=test_valid_product['display_upc'], context_type=invalid_context_type) server_response = client.get(request_url) assert server_response.status_code == 400