[Zeitgeist] [Merge] lp:~zeitgeist/zeitgeist/fix-646124 into lp:zeitgeist

2010-09-25 Thread Seif Lotfy
Seif Lotfy has proposed merging lp:~zeitgeist/zeitgeist/fix-646124 into 
lp:zeitgeist.

Requested reviews:
  Zeitgeist Framework Team (zeitgeist)
Related bugs:
  #646124 Wrong understanding of the LeastRecentActors
  https://bugs.launchpad.net/bugs/646124


Basically all I did is replace LeastRecentActor with a new OldestActor and 
ported LeastRecentActor to our new understanding discussed in bug #646124
-- 
https://code.launchpad.net/~zeitgeist/zeitgeist/fix-646124/+merge/36628
Your team Zeitgeist Framework Team is requested to review the proposed merge of 
lp:~zeitgeist/zeitgeist/fix-646124 into lp:zeitgeist.
=== modified file '_zeitgeist/engine/main.py'
--- _zeitgeist/engine/main.py	2010-09-24 17:02:50 +
+++ _zeitgeist/engine/main.py	2010-09-25 11:45:54 +
@@ -343,7 +343,7 @@
 		else:
 			raise NotImplementedError, Unsupported return_mode.
 		
-		if order == ResultType.LeastRecentActor:
+		if order == ResultType.OldestActor:
 			sql += 
 NATURAL JOIN (
 	SELECT actor, min(timestamp) AS timestamp
@@ -366,7 +366,8 @@
 			 GROUP BY subj_origin ORDER BY timestamp DESC,
 			 GROUP BY subj_origin ORDER BY timestamp ASC,
 			 GROUP BY subj_origin ORDER BY COUNT(subj_origin) DESC, timestamp DESC,
-			 GROUP BY subj_origin ORDER BY COUNT(subj_origin) ASC, timestamp ASC)[order]
+			 GROUP BY subj_origin ORDER BY COUNT(subj_origin) ASC, timestamp ASC,
+			 GROUP BY actor ORDER BY timestamp ASC)[order]
 		
 		if max_events  0:
 			sql +=  LIMIT %d % max_events

=== modified file 'test/engine-test.py'
--- test/engine-test.py	2010-09-24 17:02:50 +
+++ test/engine-test.py	2010-09-25 11:45:54 +
@@ -596,6 +596,15 @@
 		events = self.engine.find_events(
 			TimeRange(105,107), [], StorageState.Any, 0, ResultType.MostRecentActor)
 		self.assertEquals([e[0][1] for e in events], [107, 105])
+	
+	def testResultTypesOldestActor(self):
+		import_events(test/data/twenty_events.js, self.engine)
+		
+		events = self.engine.find_events(
+			TimeRange.always(),
+			[Event.new_for_values(subject_manifestation=stfu:File)],
+			StorageState.Any, 0, ResultType.OldestActor)
+		self.assertEquals([e[0][1] for e in events], [100, 101, 105])
 
 	def testResultTypesLeastRecentActor(self):
 		import_events(test/data/twenty_events.js, self.engine)
@@ -604,11 +613,9 @@
 			TimeRange.always(),
 			[Event.new_for_values(subject_manifestation=stfu:File)],
 			StorageState.Any, 0, ResultType.LeastRecentActor)
-		self.assertEquals([e[0][1] for e in events], [100, 101, 105])
-		# LeastRecentActor should really be: 100, 101, 105. See bug #646124.
-		# This will be renamed to something like OldestActor.
+		self.assertEquals([e[0][1] for e in events], ['105', '114', '119'])
 
-	def testResultTypesLeastRecentActorBug641968(self):
+	def testResultTypesOldestActorBug641968(self):
 		events = [
 			Event.new_for_values(timestamp=1, actor=boo, subject_uri=tmp/boo),
 			Event.new_for_values(timestamp=2, actor=boo, subject_uri=home/boo),
@@ -619,20 +626,20 @@
 		
 		# Get the least recent actors
 		ids = self.engine.find_eventids(TimeRange.always(),
-			[], StorageState.Any, 0, ResultType.LeastRecentActor)
+			[], StorageState.Any, 0, ResultType.OldestActor)
 		self.assertEquals(ids, [1, 3, 4])
 		
 		# Get the least recent actors for home/boo
 		template = Event.new_for_values(subject_uri=home/boo)
 		ids = self.engine.find_eventids(TimeRange.always(),
-			[template], StorageState.Any, 0, ResultType.LeastRecentActor)
+			[template], StorageState.Any, 0, ResultType.OldestActor)
 		self.assertEquals(ids, [2])
 		
 		# Let's also try the same with MostRecentActor... Although there
 		# should be no problem here.
 		template = Event.new_for_values(subject_uri=home/boo)
 		ids = self.engine.find_eventids(TimeRange.always(),
-			[template], StorageState.Any, 0, ResultType.LeastRecentActor)
+			[template], StorageState.Any, 0, ResultType.OldestActor)
 		self.assertEquals(ids, [2])
 	
 	def testResultTypesMostPopularOrigin(self):

=== modified file 'zeitgeist/datamodel.py'
--- zeitgeist/datamodel.py	2010-08-28 15:14:42 +
+++ zeitgeist/datamodel.py	2010-09-25 11:45:54 +
@@ -1029,14 +1029,15 @@
 		ordered by the popularity of the actor))
 	LeastPopularActor = enum_factory((The last event of each different actor,
 		ordered ascendingly by the popularity of the actor))
-	MostRecentActor = enum_factory((The last event of each different actor))
-	LeastRecentActor = enum_factory((The first event of each different actor))	
+	MostRecentActor = enum_factory((The most recent event of each different actor))
+	LeastRecentActor = enum_factory((The least recent event of each different actor))	
 	MostRecentOrigin = enum_factory((The last event of each different origin))
 	LeastRecentOrigin = enum_factory((The first event of each different origin))
 	MostPopularOrigin = enum_factory((The last event of each different origin,
 		ordered by the popularity of the origins))
 	LeastPopularOrigin = enum_factory((The last event of each different origin

Re: [Zeitgeist] [Merge] lp:~zeitgeist/zeitgeist/fix-646124 into lp:zeitgeist

2010-09-25 Thread Siegfried Gevatter
Review: Approve
Looks good, thanks for working on this Seif!
-- 
https://code.launchpad.net/~zeitgeist/zeitgeist/fix-646124/+merge/36628
Your team Zeitgeist Framework Team is subscribed to branch 
lp:~zeitgeist/zeitgeist/fix-646124.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Merge] lp:~zeitgeist/zeitgeist/fix-646124 into lp:zeitgeist

2010-09-25 Thread noreply
The proposal to merge lp:~zeitgeist/zeitgeist/fix-646124 into lp:zeitgeist has 
been updated.

Status: Needs review = Merged
-- 
https://code.launchpad.net/~zeitgeist/zeitgeist/fix-646124/+merge/36628
Your team Zeitgeist Framework Team is subscribed to branch 
lp:~zeitgeist/zeitgeist/fix-646124.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp