##// END OF EJS Templates
add db_query and hub_history tests to test_client
MinRK -
Show More
@@ -12,6 +12,7 b''
12 #-------------------------------------------------------------------------------
12 #-------------------------------------------------------------------------------
13
13
14 import time
14 import time
15 from datetime import datetime
15 from tempfile import mktemp
16 from tempfile import mktemp
16
17
17 import zmq
18 import zmq
@@ -146,3 +147,68 b' class TestClient(ClusterTestCase):'
146 def test_result_status(self):
147 def test_result_status(self):
147 pass
148 pass
148 # to be written
149 # to be written
150
151 def test_db_query_dt(self):
152 """test db query by date"""
153 hist = self.client.hub_history()
154 middle = self.client.db_query({'msg_id' : hist[len(hist)/2]})[0]
155 tic = middle['submitted']
156 before = self.client.db_query({'submitted' : {'$lt' : tic}})
157 after = self.client.db_query({'submitted' : {'$gte' : tic}})
158 self.assertEquals(len(before)+len(after),len(hist))
159 for b in before:
160 self.assertTrue(b['submitted'] < tic)
161 for a in after:
162 self.assertTrue(a['submitted'] >= tic)
163 same = self.client.db_query({'submitted' : tic})
164 for s in same:
165 self.assertTrue(s['submitted'] == tic)
166
167 def test_db_query_keys(self):
168 """test extracting subset of record keys"""
169 found = self.client.db_query({'msg_id': {'$ne' : ''}},keys=['submitted', 'completed'])
170 for rec in found:
171 self.assertEquals(set(rec.keys()), set(['msg_id', 'submitted', 'completed']))
172
173 def test_db_query_msg_id(self):
174 """ensure msg_id is always in db queries"""
175 found = self.client.db_query({'msg_id': {'$ne' : ''}},keys=['submitted', 'completed'])
176 for rec in found:
177 self.assertTrue('msg_id' in rec.keys())
178 found = self.client.db_query({'msg_id': {'$ne' : ''}},keys=['submitted'])
179 for rec in found:
180 self.assertTrue('msg_id' in rec.keys())
181 found = self.client.db_query({'msg_id': {'$ne' : ''}},keys=['msg_id'])
182 for rec in found:
183 self.assertTrue('msg_id' in rec.keys())
184
185 def test_db_query_in(self):
186 """test db query with '$in','$nin' operators"""
187 hist = self.client.hub_history()
188 even = hist[::2]
189 odd = hist[1::2]
190 recs = self.client.db_query({ 'msg_id' : {'$in' : even}})
191 found = [ r['msg_id'] for r in recs ]
192 self.assertEquals(set(even), set(found))
193 recs = self.client.db_query({ 'msg_id' : {'$nin' : even}})
194 found = [ r['msg_id'] for r in recs ]
195 self.assertEquals(set(odd), set(found))
196
197 def test_hub_history(self):
198 hist = self.client.hub_history()
199 recs = self.client.db_query({ 'msg_id' : {"$ne":''}})
200 recdict = {}
201 for rec in recs:
202 recdict[rec['msg_id']] = rec
203
204 latest = datetime(1984,1,1)
205 for msg_id in hist:
206 rec = recdict[msg_id]
207 newt = rec['submitted']
208 self.assertTrue(newt >= latest)
209 latest = newt
210 ar = self.client[-1].apply_async(lambda : 1)
211 ar.get()
212 time.sleep(0.25)
213 self.assertEquals(self.client.hub_history()[-1:],ar.msg_ids)
214
General Comments 0
You need to be logged in to leave comments. Login now