| 12345678910111213141516171819202122232425262728293031323334353637 |
- """质检物料批次列表:剩余库存过滤语义。"""
- import unittest
- from decimal import Decimal
- from app.crud.qc_material_batch_stock_status import (
- batch_matches_stock_status,
- normalize_batch_stock_status,
- )
- class TestNormalizeBatchStockStatus(unittest.TestCase):
- def test_available_and_exhausted(self):
- self.assertEqual(normalize_batch_stock_status("available"), "available")
- self.assertEqual(normalize_batch_stock_status("exhausted"), "exhausted")
- self.assertEqual(normalize_batch_stock_status(" Available "), "available")
- def test_all_empty_invalid_map_to_none(self):
- self.assertIsNone(normalize_batch_stock_status(None))
- self.assertIsNone(normalize_batch_stock_status(""))
- self.assertIsNone(normalize_batch_stock_status("all"))
- self.assertIsNone(normalize_batch_stock_status("bogus"))
- class TestBatchMatchesStockStatus(unittest.TestCase):
- def test_all_always_true(self):
- self.assertTrue(batch_matches_stock_status(0, "all"))
- self.assertTrue(batch_matches_stock_status(1, None))
- def test_available_gt_zero(self):
- self.assertTrue(batch_matches_stock_status(Decimal("0.1"), "available"))
- self.assertFalse(batch_matches_stock_status(0, "available"))
- self.assertFalse(batch_matches_stock_status(Decimal("0"), "available"))
- def test_exhausted_eq_zero(self):
- self.assertTrue(batch_matches_stock_status(0, "exhausted"))
- self.assertTrue(batch_matches_stock_status(Decimal("0.0000"), "exhausted"))
- self.assertFalse(batch_matches_stock_status(1, "exhausted"))
|