"""Unit tests for pricing_family model.""" from pricing.models import pricing_family import pytest from tests.utils import db_operations @pytest.fixture def db_fixture(): """Drop and re-create all the SQLite tables and seed them.""" db_operations.create_tables() db_operations.seed_data() def test_get_families(db_fixture): """Test pricing family model returns data when seeded.""" result = pricing_family.get_pricing_families() assert result.status == 200 result_pricing_families = result.message assert len(result_pricing_families) == 1 result_pricing_family = result_pricing_families['items'][0] assert result_pricing_family['pricing_family_id'] == \ db_operations.pricing_family_data['pricing_family_id'] assert result_pricing_family['name'] == \ db_operations.pricing_family_data['name'] def test_get_families_empty(): """Test not found response when there is no pricing family data.""" db_operations.create_tables() result = pricing_family.get_pricing_families() assert not result def test_create_pricing_family(db_fixture): """Test that a pricing family can be created.""" data = { 'pricing_family_id': 5, 'name': 'New Pricing Family' } result = pricing_family.create_pricing_family(data) created_pricing_family = result.message assert created_pricing_family['pricing_family_id'] == 5 assert created_pricing_family['name'] == 'New Pricing Family' def test_create_pricing_family_empty_body(db_fixture): """Test that a pricing family requires fields to be created.""" data = {} result = pricing_family.create_pricing_family(data) assert result.status == 400