1515from .helpers import safe_index_name
1616from .helpers import get_api_client
1717from .helpers import FakeData
18+ from .helpers import wait_key , wait_missing_key
1819
1920
2021class KeyTest (unittest .TestCase ):
@@ -64,7 +65,7 @@ def test_add_user_keys(self):
6465 def test_get_user_key (self ):
6566 res = self .client .add_user_key (['search' ])
6667 key = res ['key' ]
67- time . sleep ( 5 )
68+ wait_key ( self . client , key )
6869
6970 res = self .client .get_user_key_acl (key )
7071 self .assertEqual (res ['value' ], key )
@@ -79,28 +80,30 @@ def test_update_user_keys(self):
7980 res = self .client .add_user_key (['search' ])
8081 keys .append (res ['key' ])
8182
82- time .sleep (5 )
83+ for k in keys :
84+ wait_key (self .client , k )
8385
8486 res = self .client .update_user_key (keys [0 ], ['addObject' ],
8587 max_queries_per_ip_per_hour = 5 )
8688 self .assertGreater (len (res ['key' ]), 0 )
87- time . sleep ( 5 )
89+ wait_key ( self . client , keys [ 0 ], lambda k : k [ 'acl' ] == [ 'addObject' ] )
8890 res = self .client .get_user_key_acl (keys [0 ])
8991 self .assertSetEqual (set (res ['acl' ]), set (['addObject' ]))
9092 self .assertEqual (res ['maxQueriesPerIPPerHour' ], 5 )
9193
9294 res = self .client .update_user_key (keys [1 ], ['deleteObject' ],
9395 max_hits_per_query = 10 )
9496 self .assertGreater (len (res ['key' ]), 0 )
95- time .sleep (5 )
97+
98+ wait_key (self .client , keys [1 ], lambda k : k ['acl' ] == ['deleteObject' ])
9699 res = self .client .get_user_key_acl (keys [1 ])
97100 self .assertSetEqual (set (res ['acl' ]), set (['deleteObject' ]))
98101 self .assertEqual (res ['maxHitsPerQuery' ], 10 )
99102
100103 res = self .client .update_user_key (keys [2 ], ['settings' , 'search' ],
101104 validity = 60 )
102105 self .assertGreater (len (res ['key' ]), 0 )
103- time . sleep ( 5 )
106+ wait_key ( self . client , keys [ 2 ], lambda k : set ( k [ 'acl' ]) == set ([ 'settings' , 'search' ]) )
104107 res = self .client .get_user_key_acl (keys [2 ])
105108 self .assertSetEqual (set (res ['acl' ]), set (['settings' , 'search' ]))
106109 self .assertIn ('validity' , res )
@@ -112,10 +115,10 @@ def test_update_user_keys(self):
112115 def test_delete_user_keys (self ):
113116 res = self .client .add_user_key (['search' ])
114117 key = res ['key' ]
115- time . sleep ( 5 )
118+ wait_key ( self . client , res [ 'key' ] )
116119
117120 self .client .delete_user_key (key )
118- time . sleep ( 5 )
121+ wait_missing_key ( self . client , res [ 'key' ] )
119122
120123 res = self .client .list_user_keys ()
121124 res_keys = [elt ['value' ] for elt in res ['keys' ]]
@@ -150,7 +153,7 @@ def test_index_add_user_keys(self):
150153 def test_index_get_user_key (self ):
151154 res = self .index .add_user_key (['search' ])
152155 key = res ['key' ]
153- time . sleep ( 5 )
156+ wait_key ( self . index , res [ 'key' ] )
154157
155158 res = self .index .get_user_key_acl (key )
156159 self .assertEqual (res ['value' ], key )
@@ -165,28 +168,29 @@ def test_index_update_user_keys(self):
165168 res = self .index .add_user_key (['search' ])
166169 keys .append (res ['key' ])
167170
168- time .sleep (5 )
171+ for k in keys :
172+ wait_key (self .index , k )
169173
170174 res = self .index .update_user_key (keys [0 ], ['addObject' ],
171175 max_queries_per_ip_per_hour = 5 )
172176 self .assertGreater (len (res ['key' ]), 0 )
173- time . sleep ( 5 )
177+ wait_key ( self . index , keys [ 0 ], lambda k : k [ 'acl' ] == [ 'addObject' ] )
174178 res = self .index .get_user_key_acl (keys [0 ])
175179 self .assertSetEqual (set (res ['acl' ]), set (['addObject' ]))
176180 self .assertEqual (res ['maxQueriesPerIPPerHour' ], 5 )
177181
178182 res = self .index .update_user_key (keys [1 ], ['deleteObject' ],
179183 max_hits_per_query = 10 )
180184 self .assertGreater (len (res ['key' ]), 0 )
181- time . sleep ( 5 )
185+ wait_key ( self . index , keys [ 1 ], lambda k : k [ 'acl' ] == [ 'deleteObject' ] )
182186 res = self .index .get_user_key_acl (keys [1 ])
183187 self .assertSetEqual (set (res ['acl' ]), set (['deleteObject' ]))
184188 self .assertEqual (res ['maxHitsPerQuery' ], 10 )
185189
186190 res = self .index .update_user_key (keys [2 ], ['settings' , 'search' ],
187191 validity = 60 )
188192 self .assertGreater (len (res ['key' ]), 0 )
189- time . sleep ( 5 )
193+ wait_key ( self . index , keys [ 2 ], lambda k : set ( k [ 'acl' ]) == set ([ 'search' , 'settings' ]) )
190194 res = self .index .get_user_key_acl (keys [2 ])
191195 self .assertSetEqual (set (res ['acl' ]), set (['settings' , 'search' ]))
192196 self .assertIn ('validity' , res )
@@ -198,10 +202,10 @@ def test_index_update_user_keys(self):
198202 def test_index_delete_user_keys (self ):
199203 res = self .index .add_user_key (['search' ])
200204 key = res ['key' ]
201- time . sleep ( 5 )
205+ wait_key ( self . index , res [ 'key' ] )
202206
203207 self .index .delete_user_key (key )
204- time . sleep ( 5 )
208+ wait_missing_key ( self . index , res [ 'key' ] )
205209
206210 res = self .index .list_user_keys ()
207211 res_keys = [elt ['value' ] for elt in res ['keys' ]]
0 commit comments