File indexing completed on 2026-09-01 09:34:24
0001 from unittest.mock import Mock, patch
0002
0003 from django.test import SimpleTestCase
0004
0005 from monitor_app.cached_product import get_product
0006
0007
0008 class CachedProductTests(SimpleTestCase):
0009 @patch('monitor_app.cached_product._background_build')
0010 @patch('monitor_app.cached_product._claim', return_value=True)
0011 @patch('monitor_app.models.CachedProduct.objects.filter')
0012 def test_async_first_fill_returns_refreshing_shell(
0013 self, product_filter, _claim, background_build):
0014 product_filter.return_value.first.return_value = None
0015 builder = Mock()
0016
0017 result = get_product(
0018 'snapper_series:v9:epicprod:focus:site:test:30d',
0019 builder,
0020 ttl_seconds=3600,
0021 async_first_fill=True,
0022 )
0023
0024 self.assertIsNone(result['value'])
0025 self.assertTrue(result['refreshing'])
0026 builder.assert_not_called()
0027 background_build.assert_called_once()