@@ -20,3 +20,117 @@ def test_empty_broker_list():
2020 [], # empty brokers
2121 [(17 , 'foo' , []), (17 , 'bar' , [])])) # topics w/ error
2222 assert len (cluster .brokers ()) == 2
23+
24+
25+ def test_metadata_v0 ():
26+ cluster = ClusterMetadata ()
27+ cluster .update_metadata (MetadataResponse [0 ](
28+ [(0 , 'foo' , 12 ), (1 , 'bar' , 34 )],
29+ [(0 , 'topic-1' , [(0 , 0 , 0 , [0 ], [0 ])])]))
30+ assert len (cluster .topics ()) == 1
31+ assert cluster .controller is None
32+ assert cluster .cluster_id is None
33+ assert cluster ._partitions ['topic-1' ][0 ].offline_replicas == []
34+ assert cluster ._partitions ['topic-1' ][0 ].leader_epoch == - 1
35+
36+
37+ def test_metadata_v1 ():
38+ cluster = ClusterMetadata ()
39+ cluster .update_metadata (MetadataResponse [1 ](
40+ [(0 , 'foo' , 12 , 'rack-1' ), (1 , 'bar' , 34 , 'rack-2' )],
41+ 0 , # controller_id
42+ [(0 , 'topic-1' , False , [(0 , 0 , 0 , [0 ], [0 ])])]))
43+ assert len (cluster .topics ()) == 1
44+ assert cluster .controller == cluster .broker_metadata (0 )
45+ assert cluster .cluster_id is None
46+ assert cluster ._partitions ['topic-1' ][0 ].offline_replicas == []
47+ assert cluster ._partitions ['topic-1' ][0 ].leader_epoch == - 1
48+
49+
50+ def test_metadata_v2 ():
51+ cluster = ClusterMetadata ()
52+ cluster .update_metadata (MetadataResponse [2 ](
53+ [(0 , 'foo' , 12 , 'rack-1' ), (1 , 'bar' , 34 , 'rack-2' )],
54+ 'cluster-foo' , # cluster_id
55+ 0 , # controller_id
56+ [(0 , 'topic-1' , False , [(0 , 0 , 0 , [0 ], [0 ])])]))
57+ assert len (cluster .topics ()) == 1
58+ assert cluster .controller == cluster .broker_metadata (0 )
59+ assert cluster .cluster_id == 'cluster-foo'
60+ assert cluster ._partitions ['topic-1' ][0 ].offline_replicas == []
61+ assert cluster ._partitions ['topic-1' ][0 ].leader_epoch == - 1
62+
63+
64+ def test_metadata_v3 ():
65+ cluster = ClusterMetadata ()
66+ cluster .update_metadata (MetadataResponse [3 ](
67+ 0 , # throttle_time_ms
68+ [(0 , 'foo' , 12 , 'rack-1' ), (1 , 'bar' , 34 , 'rack-2' )],
69+ 'cluster-foo' , # cluster_id
70+ 0 , # controller_id
71+ [(0 , 'topic-1' , False , [(0 , 0 , 0 , [0 ], [0 ])])]))
72+ assert len (cluster .topics ()) == 1
73+ assert cluster .controller == cluster .broker_metadata (0 )
74+ assert cluster .cluster_id == 'cluster-foo'
75+ assert cluster ._partitions ['topic-1' ][0 ].offline_replicas == []
76+ assert cluster ._partitions ['topic-1' ][0 ].leader_epoch == - 1
77+
78+
79+ def test_metadata_v4 ():
80+ cluster = ClusterMetadata ()
81+ cluster .update_metadata (MetadataResponse [4 ](
82+ 0 , # throttle_time_ms
83+ [(0 , 'foo' , 12 , 'rack-1' ), (1 , 'bar' , 34 , 'rack-2' )],
84+ 'cluster-foo' , # cluster_id
85+ 0 , # controller_id
86+ [(0 , 'topic-1' , False , [(0 , 0 , 0 , [0 ], [0 ])])]))
87+ assert len (cluster .topics ()) == 1
88+ assert cluster .controller == cluster .broker_metadata (0 )
89+ assert cluster .cluster_id == 'cluster-foo'
90+ assert cluster ._partitions ['topic-1' ][0 ].offline_replicas == []
91+ assert cluster ._partitions ['topic-1' ][0 ].leader_epoch == - 1
92+
93+
94+ def test_metadata_v5 ():
95+ cluster = ClusterMetadata ()
96+ cluster .update_metadata (MetadataResponse [5 ](
97+ 0 , # throttle_time_ms
98+ [(0 , 'foo' , 12 , 'rack-1' ), (1 , 'bar' , 34 , 'rack-2' )],
99+ 'cluster-foo' , # cluster_id
100+ 0 , # controller_id
101+ [(0 , 'topic-1' , False , [(0 , 0 , 0 , [0 ], [0 ], [12 ])])]))
102+ assert len (cluster .topics ()) == 1
103+ assert cluster .controller == cluster .broker_metadata (0 )
104+ assert cluster .cluster_id == 'cluster-foo'
105+ assert cluster ._partitions ['topic-1' ][0 ].offline_replicas == [12 ]
106+ assert cluster ._partitions ['topic-1' ][0 ].leader_epoch == - 1
107+
108+
109+ def test_metadata_v6 ():
110+ cluster = ClusterMetadata ()
111+ cluster .update_metadata (MetadataResponse [6 ](
112+ 0 , # throttle_time_ms
113+ [(0 , 'foo' , 12 , 'rack-1' ), (1 , 'bar' , 34 , 'rack-2' )],
114+ 'cluster-foo' , # cluster_id
115+ 0 , # controller_id
116+ [(0 , 'topic-1' , False , [(0 , 0 , 0 , [0 ], [0 ], [12 ])])]))
117+ assert len (cluster .topics ()) == 1
118+ assert cluster .controller == cluster .broker_metadata (0 )
119+ assert cluster .cluster_id == 'cluster-foo'
120+ assert cluster ._partitions ['topic-1' ][0 ].offline_replicas == [12 ]
121+ assert cluster ._partitions ['topic-1' ][0 ].leader_epoch == - 1
122+
123+
124+ def test_metadata_v7 ():
125+ cluster = ClusterMetadata ()
126+ cluster .update_metadata (MetadataResponse [7 ](
127+ 0 , # throttle_time_ms
128+ [(0 , 'foo' , 12 , 'rack-1' ), (1 , 'bar' , 34 , 'rack-2' )],
129+ 'cluster-foo' , # cluster_id
130+ 0 , # controller_id
131+ [(0 , 'topic-1' , False , [(0 , 0 , 0 , 0 , [0 ], [0 ], [12 ])])]))
132+ assert len (cluster .topics ()) == 1
133+ assert cluster .controller == cluster .broker_metadata (0 )
134+ assert cluster .cluster_id == 'cluster-foo'
135+ assert cluster ._partitions ['topic-1' ][0 ].offline_replicas == [12 ]
136+ assert cluster ._partitions ['topic-1' ][0 ].leader_epoch == 0
0 commit comments