@@ -45,9 +45,9 @@ def test_scroll_events() -> None:
4545 status_code = 200 ,
4646 )
4747
48- item , cursor = next (events_iterator )
48+ event , cursor = next (events_iterator )
4949 assert len (mocker .request_history ) == 2
50- assert item == {"event" : "hello" }
50+ assert event == {"event" : "hello" }
5151 assert cursor == "second_page"
5252
5353 # Last page
@@ -63,3 +63,48 @@ def test_scroll_events() -> None:
6363 with pytest .raises (StopIteration ):
6464 next (events_iterator )
6565 assert len (mocker .request_history ) == 1
66+
67+
68+ def test_scroll_events_metadata () -> None :
69+ """
70+ scroll_events_metadata is used by the flareio-cli
71+ """
72+ api_client = get_test_client ()
73+ no_limit : _Limiter = _Limiter ._unlimited ()
74+
75+ events_iterator = api_client ._scroll_events_metadata (
76+ method = "GET" ,
77+ pages_url = "https://api.flare.io/pages" ,
78+ events_url = "https://api.flare.io/events" ,
79+ params = {
80+ "from" : None ,
81+ },
82+ _pages_limiter = no_limit ,
83+ _events_limiter = no_limit ,
84+ )
85+
86+ # First page
87+ with requests_mock .Mocker () as mocker :
88+ mocker .register_uri (
89+ "GET" ,
90+ "https://api.flare.io/pages" ,
91+ json = {
92+ "items" : [
93+ {"metadata" : {"uid" : "first_event_uid" }},
94+ ],
95+ "next" : "second_page" ,
96+ },
97+ status_code = 200 ,
98+ )
99+ mocker .register_uri (
100+ "GET" ,
101+ "https://api.flare.io/events" ,
102+ json = {"event" : "hello" },
103+ status_code = 200 ,
104+ )
105+
106+ event_metadata , event , cursor = next (events_iterator )
107+ assert len (mocker .request_history ) == 2
108+ assert event_metadata == {"metadata" : {"uid" : "first_event_uid" }}
109+ assert event == {"event" : "hello" }
110+ assert cursor == "second_page"
0 commit comments