|
13 | 13 | from fbclient.notice_broadcaster import NoticeBroadcater |
14 | 14 | from fbclient.status import DataUpdateStatusProviderImpl |
15 | 15 | from fbclient.status_types import State, StateType |
16 | | -from fbclient.streaming import Streaming |
| 16 | +from fbclient.streaming import Streaming, _data_to_dict |
| 17 | +from fbclient.category import FEATURE_FLAGS, SEGMENTS |
17 | 18 | import fbclient.streaming as streaming_module |
18 | 19 | from fbclient.update_processor import NullUpdateProcessor |
19 | 20 | from fbclient.utils.http_client import build_http_factory |
@@ -99,6 +100,26 @@ def close(self, **_kwargs): |
99 | 100 | streaming.stop() |
100 | 101 |
|
101 | 102 |
|
| 103 | +def test_archived_streaming_data_retains_category_for_broadcast(): |
| 104 | + _, data = _data_to_dict({ |
| 105 | + "featureFlags": [{ |
| 106 | + "id": "archived-flag-id", |
| 107 | + "key": "archived-flag", |
| 108 | + "updatedAt": "2026-01-01T00:00:00Z", |
| 109 | + "variations": [], |
| 110 | + "isArchived": True, |
| 111 | + }], |
| 112 | + "segments": [{ |
| 113 | + "id": "archived-segment-id", |
| 114 | + "updatedAt": "2026-01-01T00:00:00Z", |
| 115 | + "isArchived": True, |
| 116 | + }], |
| 117 | + }) |
| 118 | + |
| 119 | + assert data[FEATURE_FLAGS]["archived-flag"]["cat"] == FEATURE_FLAGS |
| 120 | + assert data[SEGMENTS]["archived-segment-id"]["cat"] == SEGMENTS |
| 121 | + |
| 122 | + |
102 | 123 | def test_notice_broadcaster_is_safe_during_listener_churn(): |
103 | 124 | broadcaster = NoticeBroadcater() |
104 | 125 | callback_count = [0] |
|
0 commit comments