206
206
# when some of them have multiple subjects (so more than one row
207
207
# with the same event id).
208
208
results = self.findEventsForTemplatesAndWait([], num_events=3)
209
self.assertEquals(3, len(results))
209
self.assertEqual(3, len(results))
211
211
def testInsertWithEmptySubjectInterpretationManifestation(self):
212
212
events = parse_events("test/data/incomplete_events.js")
213
213
ids = self.insertEventsAndWait(events[:3])
214
self.assertEquals(3, len(ids))
214
self.assertEqual(3, len(ids))
216
216
event = self.getEventsAndWait([ids[0]])[0]
217
self.assertEquals("Hi", event.subjects[0].manifestation)
218
self.assertEquals("", event.subjects[0].interpretation)
219
self.assertEquals("Something", event.subjects[1].manifestation)
220
self.assertEquals("", event.subjects[1].interpretation)
217
self.assertEqual("Hi", event.subjects[0].manifestation)
218
self.assertEqual("", event.subjects[0].interpretation)
219
self.assertEqual("Something", event.subjects[1].manifestation)
220
self.assertEqual("", event.subjects[1].interpretation)
222
222
event = self.getEventsAndWait([ids[1]])[0]
223
self.assertEquals(Manifestation.FILE_DATA_OBJECT, event.subjects[0].manifestation)
224
self.assertEquals(Interpretation.SOURCE_CODE, event.subjects[0].interpretation)
225
self.assertEquals(Manifestation.FILE_DATA_OBJECT, event.subjects[1].manifestation)
226
self.assertEquals("a", event.subjects[1].interpretation)
227
self.assertEquals("b", event.subjects[2].manifestation)
228
self.assertEquals(Interpretation.SOURCE_CODE, event.subjects[2].interpretation)
223
self.assertEqual(Manifestation.FILE_DATA_OBJECT, event.subjects[0].manifestation)
224
self.assertEqual(Interpretation.SOURCE_CODE, event.subjects[0].interpretation)
225
self.assertEqual(Manifestation.FILE_DATA_OBJECT, event.subjects[1].manifestation)
226
self.assertEqual("a", event.subjects[1].interpretation)
227
self.assertEqual("b", event.subjects[2].manifestation)
228
self.assertEqual(Interpretation.SOURCE_CODE, event.subjects[2].interpretation)
230
230
event = self.getEventsAndWait([ids[2]])[0]
231
self.assertEquals("something else", event.subjects[0].manifestation)
232
self.assertEquals("#Audio", event.subjects[0].interpretation)
231
self.assertEqual("something else", event.subjects[0].manifestation)
232
self.assertEqual("#Audio", event.subjects[0].interpretation)
234
234
def testInsertWithEmptySubjectMimeType(self):
235
235
events = parse_events("test/data/incomplete_events.js")
236
236
ids = self.insertEventsAndWait([events[7]])
237
self.assertEquals(1, len(ids))
237
self.assertEqual(1, len(ids))
239
239
event = self.getEventsAndWait([ids[0]])[0]
240
self.assertEquals(1, len(event.subjects))
240
self.assertEqual(1, len(event.subjects))
242
242
subject = event.subjects[0]
243
self.assertEquals("file:///unknown-mimetype-file", subject.uri)
244
self.assertEquals("", subject.mimetype)
245
self.assertEquals(Manifestation.FILE_DATA_OBJECT, subject.manifestation) # FIXME
246
self.assertEquals("", subject.interpretation) # FIXME
243
self.assertEqual("file:///unknown-mimetype-file", subject.uri)
244
self.assertEqual("", subject.mimetype)
245
self.assertEqual(Manifestation.FILE_DATA_OBJECT, subject.manifestation) # FIXME
246
self.assertEqual("", subject.interpretation) # FIXME
248
248
def testInsertIncompleteEvent(self):
249
249
events = parse_events("test/data/incomplete_events.js")
251
251
# Missing interpretation
252
252
ids = self.insertEventsAndWait([events[3]])
253
self.assertEquals(0, len(ids))
253
self.assertEqual(0, len(ids))
255
255
# Missing manifestation
256
256
ids = self.insertEventsAndWait([events[4]])
257
self.assertEquals(0, len(ids))
257
self.assertEqual(0, len(ids))
260
260
ids = self.insertEventsAndWait([events[5]])
261
self.assertEquals(0, len(ids))
261
self.assertEqual(0, len(ids))
263
263
def testInsertIncompleteSubject(self):
264
264
events = parse_events("test/data/incomplete_events.js")
266
266
# Missing one subject URI
267
267
ids = self.insertEventsAndWait([events[6]])
268
self.assertEquals(0, len(ids))
268
self.assertEqual(0, len(ids))
270
270
class ZeitgeistRemoteFindEventIdsTest(testutils.RemoteTestCase):
286
286
def testFindEventIds(self):
287
287
# Retrieve all existing event IDs, make sure they are correct
288
288
retrieved_ids = self.findEventIdsAndWait([])
289
self.assertEquals(set(retrieved_ids), set(self.ids))
289
self.assertEqual(set(retrieved_ids), set(self.ids))
291
291
def testFindEventIdsForId(self):
292
292
# Retrieve events for a particular event ID
293
293
template = Event([["3", "", "", "", "", ""], [], ""])
294
294
ids = self.findEventIdsAndWait([template])
295
self.assertEquals(ids, [3])
295
self.assertEqual(ids, [3])
297
297
def testFindEventIdsForTimeRange(self):
298
298
# Make sure that filtering by time range we get the right ones
299
299
retrieved_ids = self.findEventIdsAndWait([],
300
300
timerange=TimeRange(133, 153))
301
self.assertEquals(retrieved_ids, [4, 2, 3]) # TS: [133, 143, 153]
301
self.assertEqual(retrieved_ids, [4, 2, 3]) # TS: [133, 143, 153]
303
303
retrieved_ids = self.findEventIdsAndWait([],
304
304
timerange=TimeRange(163, 163))
305
self.assertEquals(retrieved_ids, [5]) # Timestamps: [163]
305
self.assertEqual(retrieved_ids, [5]) # Timestamps: [163]
307
307
def testFindEventIdsForInterpretation(self):
308
308
# Retrieve events for a particular interpretation
309
309
template = Event.new_for_values(interpretation='stfu:OpenEvent')
310
310
ids = self.findEventIdsAndWait([template])
311
self.assertEquals(ids, [5, 1])
311
self.assertEqual(ids, [5, 1])
313
313
# Retrieve events excluding a particular interpretation
314
314
template = Event.new_for_values(interpretation='!stfu:OpenEvent')
315
315
ids = self.findEventIdsAndWait([template])
316
self.assertEquals(map(int, ids), [4, 2, 3])
316
self.assertEqual(list(map(int, ids)), [4, 2, 3])
318
318
def testFindEventIdsForManifestation(self):
319
319
# Retrieve events for a particular manifestation
320
320
template = Event.new_for_values(manifestation='stfu:BooActivity')
321
321
ids = self.findEventIdsAndWait([template])
322
self.assertEquals(ids, [2])
322
self.assertEqual(ids, [2])
324
324
# Retrieve events excluding a particular manifestation
325
325
template = Event.new_for_values(manifestation='!stfu:BooActivity')
326
326
ids = self.findEventIdsAndWait([template])
327
self.assertEquals(map(int, ids), [5, 4, 3, 1])
327
self.assertEqual(list(map(int, ids)), [5, 4, 3, 1])
329
329
def testFindEventIdsForActor(self):
330
330
# Retrieve events for a particular actor
331
331
template = Event.new_for_values(actor='gedit')
332
332
ids = self.findEventIdsAndWait([template])
333
self.assertEquals(ids, [3])
333
self.assertEqual(ids, [3])
335
335
# Retrieve events excluding a particular actor
336
336
template = Event.new_for_values(actor='!gedit')
337
337
ids = self.findEventIdsAndWait([template])
338
self.assertEquals(map(int, ids), [5, 4, 2, 1])
338
self.assertEqual(list(map(int, ids)), [5, 4, 2, 1])
340
340
# Retrieve events with actor matching a prefix
341
341
template = Event.new_for_values(actor='g*')
342
342
ids = self.findEventIdsAndWait([template])
343
self.assertEquals(map(int, ids), [2, 3])
343
self.assertEqual(list(map(int, ids)), [2, 3])
345
345
def testFindEventIdsForEventOrigin(self):
346
346
# Retrieve events for a particular actor
347
347
template = Event.new_for_values(origin='big bang')
348
348
ids = self.findEventIdsAndWait([template])
349
self.assertEquals(ids, [5, 3])
349
self.assertEqual(ids, [5, 3])
351
351
# Now let's try with wildcard and negation
352
352
template = Event.new_for_values(origin='!big *')
353
353
ids = self.findEventIdsAndWait([template])
354
self.assertEquals(map(int, ids), [4, 2, 1])
354
self.assertEqual(list(map(int, ids)), [4, 2, 1])
356
356
def testFindEventIdsForSubjectInterpretation(self):
357
357
# Retrieve events for a particular subject interpretation
358
358
template = Event.new_for_values(subject_interpretation='stfu:Document')
359
359
ids = self.findEventIdsAndWait([template])
360
self.assertEquals(ids, [1])
360
self.assertEqual(ids, [1])
362
362
# Retrieve events excluding a particular subject interpretation
363
363
template = Event.new_for_values(subject_interpretation='!stfu:Document')
364
364
ids = self.findEventIdsAndWait([template])
365
self.assertEquals(map(int, ids), [5, 4, 2, 3])
365
self.assertEqual(list(map(int, ids)), [5, 4, 2, 3])
367
367
def testFindEventIdsForSubjectManifestation(self):
368
368
# Retrieve events for a particular subject manifestation
369
369
template = Event.new_for_values(subject_manifestation='stfu:File')
370
370
ids = self.findEventIdsAndWait([template])
371
self.assertEquals(ids, [5, 4, 3, 1])
371
self.assertEqual(ids, [5, 4, 3, 1])
373
373
# Retrieve events excluding a particular subject interpretation
374
374
template = Event.new_for_values(subject_manifestation='!stfu:File')
375
375
ids = self.findEventIdsAndWait([template])
376
self.assertEquals(map(int, ids), [2])
376
self.assertEqual(list(map(int, ids)), [2])
378
378
def testFindEventIdsForSubjectMimeType(self):
379
379
# Retrieve events for a particular mime-type
380
380
template = Event.new_for_values(subject_mimetype='text/plain')
381
381
ids = self.findEventIdsAndWait([template])
382
self.assertEquals(ids, [4, 2, 3])
382
self.assertEqual(ids, [4, 2, 3])
384
384
# Now let's try with wildcard and negation
385
385
template = Event.new_for_values(subject_mimetype='!meat/*')
386
386
ids = self.findEventIdsAndWait([template])
387
self.assertEquals(map(int, ids), [5, 4, 2, 3])
387
self.assertEqual(list(map(int, ids)), [5, 4, 2, 3])
389
389
def testFindEventIdsForSubjectUri(self):
390
390
# Retrieve events for a particular URI
391
391
template = Event.new_for_values(subject_uri='file:///tmp/foo.txt')
392
392
ids = self.findEventIdsAndWait([template])
393
self.assertEquals(ids, [2, 3])
393
self.assertEqual(ids, [2, 3])
395
395
# Now let's try with wildcard...
396
396
template = Event.new_for_values(subject_uri='http://*')
397
397
ids = self.findEventIdsAndWait([template])
398
self.assertEquals(map(int, ids), [1])
398
self.assertEqual(list(map(int, ids)), [1])
400
400
# ... and negation
401
401
template = Event.new_for_values(subject_uri='!file:///tmp/foo.txt')
402
402
ids = self.findEventIdsAndWait([template])
403
self.assertEquals(map(int, ids), [5, 4, 1])
403
self.assertEqual(list(map(int, ids)), [5, 4, 1])
405
405
def testFindEventIdsForSubjectOrigin(self):
406
406
# Retrieve events for a particular origin
407
407
template = Event.new_for_values(subject_origin='file:///tmp')
408
408
ids = self.findEventIdsAndWait([template])
409
self.assertEquals(ids, [4, 2, 3])
409
self.assertEqual(ids, [4, 2, 3])
411
411
# Now let's try with wildcard and negation
412
412
template = Event.new_for_values(subject_origin='!file:*')
413
413
ids = self.findEventIdsAndWait([template])
414
self.assertEquals(map(int, ids), [5, 1])
414
self.assertEqual(list(map(int, ids)), [5, 1])
416
416
def testFindEventIdsForSubjectText(self):
417
417
# Retrieve events with a particular text
418
418
template = Event.new_for_values(subject_text='this item *')
419
419
ids = self.findEventIdsAndWait([template])
420
self.assertEquals(ids, [4])
420
self.assertEqual(ids, [4])
422
422
def testFindEventIdsForSubjectCurrentUri(self):
423
423
# Retrieve events for a particular current URI
424
424
template = Event.new_for_values(subject_current_uri='http://www.google.de')
425
425
ids = self.findEventIdsAndWait([template])
426
self.assertEquals(ids, [1])
426
self.assertEqual(ids, [1])
428
428
# Now let's try with wildcard and negation
429
429
template = Event.new_for_values(subject_current_uri='!http:*')
430
430
ids = self.findEventIdsAndWait([template])
431
self.assertEquals(map(int, ids), [5, 4, 2, 3])
431
self.assertEqual(list(map(int, ids)), [5, 4, 2, 3])
433
433
def testFindEventIdsForSubjectCurrentOrigin(self):
434
434
# Retrieve events for a particular current origin
435
435
template = Event.new_for_values(subject_current_origin='file:///tmp')
436
436
ids = self.findEventIdsAndWait([template])
437
self.assertEquals(ids, [4, 2, 3])
437
self.assertEqual(ids, [4, 2, 3])
439
439
# Now let's try with wildcard and negation
440
440
template = Event.new_for_values(subject_current_origin='!file:*')
441
441
ids = self.findEventIdsAndWait([template])
442
self.assertEquals(map(int, ids), [5, 1])
442
self.assertEqual(list(map(int, ids)), [5, 1])
444
444
# Now let's try with wildcard and negation
445
445
template = Event.new_for_values(subject_current_origin='!http:*')
446
446
ids = self.findEventIdsAndWait([template])
447
self.assertEquals(map(int, ids), [4, 2, 3])
447
self.assertEqual(list(map(int, ids)), [4, 2, 3])
449
449
def testFindEventIdsForSubjectStorage(self):
450
450
# Retrieve events for a particular subject storage
451
451
template = Event.new_for_values(subject_storage=
452
452
'368c991f-8b59-4018-8130-3ce0ec944157')
453
453
ids = self.findEventIdsAndWait([template])
454
self.assertEquals(ids, [4, 2, 3, 1])
454
self.assertEqual(ids, [4, 2, 3, 1])
456
456
def testFindEventIdsWithStorageState(self):