← Back to team overview

zeitgeist team mailing list archive

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

 

On Mon, Oct 11, 2010 at 4:20 PM, Markus Korn <thekorn@xxxxxx> wrote:

> I did not have time yet to check if the tests make sense, but let me give
> you a few comments first:
>
>
> > === modified file '_zeitgeist/engine/main.py'
> > --- _zeitgeist/engine/main.py   2010-09-29 08:39:32 +0000
> > +++ _zeitgeist/engine/main.py   2010-10-10 14:57:44 +0000
> > @@ -370,7 +370,15 @@
> >                        " 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",
> > -                       " GROUP BY actor ORDER BY timestamp ASC")[order]
> > +                       " GROUP BY actor ORDER BY timestamp ASC",
> > +                       " GROUP BY subj_interpretation ORDER BY timestamp
> DESC",
> > +                       " GROUP BY subj_interpretation ORDER BY timestamp
> ASC",
> > +                       " GROUP BY subj_interpretation ORDER BY
> count(subj_interpretation) DESC",
> > +                       " GROUP BY subj_interpretation ORDER BY
> count(subj_interpretation) ASC",
> > +                       " GROUP BY subj_mimetype ORDER BY timestamp
> DESC",
> > +                       " GROUP BY subj_mimetype ORDER BY timestamp ASC",
> > +                       " GROUP BY subj_mimetype ORDER BY
> count(subj_mimetype) DESC",
> > +                       " GROUP BY subj_mimetype ORDER BY
> count(subj_mimetype) ASC")[order]
> >
> >                if max_events > 0:
> >                        sql += " LIMIT %d" % max_events
>
> * we should use the same sql conventions for all statements, so please
> change count(...) to COUNT(...)
>
fixed

> * I personally don't like this big tuple containing the GROUP BY/ORDER BY
> statements, I suggest moving this tuple to a module wiede variable
> RESULT_TYPE_STATEMENTS. Also, the more resulttypes we add, the uglier
> (harder to read) this tuple gets. Maybe it's time to change this tuple to a
> dict now, like
>  {ResultType.MostRecentEvents: "ORDER BY ...",
> ResultType.LeastRecentEvents: ...}
>
I agree with you there but I think this is a bug request of its own so I
wont fix it in this branch

>
> >
> > === modified file 'test/data/twenty_events.js'
> > --- test/data/twenty_events.js  2010-07-28 20:10:07 +0000
> > +++ test/data/twenty_events.js  2010-10-10 14:57:44 +0000
> > @@ -23,10 +23,10 @@
> >                "subjects" : [
> >                        {
> >                                "uri" : "file:///tmp/foo.txt",
> > -                               "interpretation" : "stfu:Document",
> > +                               "interpretation" : "stfu:Video",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> > -                               "mimetype" : "text/plain",
> > +                               "mimetype" : "text/booboo",
> >                                "text" : "this item has not text... rly!",
> >                                "storage" :
> "368c991f-8b59-4018-8130-3ce0ec944157"
> >                        }
> > @@ -42,7 +42,7 @@
> >                                "interpretation" : "stfu:Document",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> > -                               "mimetype" : "text/plain",
> > +                               "mimetype" : "text/looloo",
> >                                "text" : "this item has not text... rly!",
> >                                "storage" :
> "368c991f-8b59-4018-8130-3ce0ec944157"
> >                        }
> > @@ -55,10 +55,10 @@
> >                "subjects" : [
> >                        {
> >                                "uri" : "file:///tmp/foo.txt",
> > -                               "interpretation" : "stfu:Document",
> > +                               "interpretation" : "stfu:Video",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> > -                               "mimetype" : "text/plain",
> > +                               "mimetype" : "text/looloo",
> >                                "text" : "this item has not text... rly!",
> >                                "storage" :
> "368c991f-8b59-4018-8130-3ce0ec944157"
> >                        }
> > @@ -103,7 +103,7 @@
> >                "subjects" : [
> >                        {
> >                                "uri" : "file:///tmp/foo.txt",
> > -                               "interpretation" : "stfu:Document",
> > +                               "interpretation" : "stfu:Video",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> >                                "mimetype" : "text/plain",
> > @@ -122,7 +122,7 @@
> >                                "interpretation" : "stfu:Document",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> > -                               "mimetype" : "text/plain",
> > +                               "mimetype" : "text/booboo",
> >                                "text" : "this item has not text... rly!",
> >                                "storage" :
> "368c991f-8b59-4018-8130-3ce0ec944157"
> >                        }
> > @@ -135,7 +135,7 @@
> >                "subjects" : [
> >                        {
> >                                "uri" : "file:///tmp/foo.txt",
> > -                               "interpretation" : "stfu:Document",
> > +                               "interpretation" : "stfu:Music",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> >                                "mimetype" : "text/plain",
> > @@ -151,7 +151,7 @@
> >                "subjects" : [
> >                        {
> >                                "uri" : "file:///tmp/foo.txt",
> > -                               "interpretation" : "stfu:Document",
> > +                               "interpretation" : "stfu:Music",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> >                                "mimetype" : "text/plain",
> > @@ -170,7 +170,7 @@
> >                                "interpretation" : "stfu:Document",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> > -                               "mimetype" : "text/plain",
> > +                               "mimetype" : "text/looloo",
> >                                "text" : "this item has not text... rly!",
> >                                "storage" :
> "368c991f-8b59-4018-8130-3ce0ec944157"
> >                        }
> > @@ -231,10 +231,10 @@
> >                "subjects" : [
> >                        {
> >                                "uri" : "file:///tmp/foo.txt",
> > -                               "interpretation" : "stfu:Document",
> > +                               "interpretation" : "stfu:Music",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> > -                               "mimetype" : "text/plain",
> > +                               "mimetype" : "text/wumbo",
> >                                "text" : "this item has not text... rly!",
> >                                "storage" :
> "368c991f-8b59-4018-8130-3ce0ec944157"
> >                        }
> > @@ -263,7 +263,7 @@
> >                "subjects" : [
> >                        {
> >                                "uri" : "file:///tmp/foo.txt",
> > -                               "interpretation" : "stfu:Document",
> > +                               "interpretation" : "stfu:Music",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///tmp",
> >                                "mimetype" : "text/plain",
> > @@ -295,7 +295,7 @@
> >                "subjects" : [
> >                        {
> >                                "uri" : "file:///tmp/foo.txt",
> > -                               "interpretation" : "stfu:Document",
> > +                               "interpretation" : "stfu:Something",
> >                                "manifestation" : "stfu:File",
> >                                "origin" : "file:///home",
> >                                "mimetype" : "text/plain",
> >
> > === modified file 'test/engine-test.py'
> > --- test/engine-test.py 2010-09-25 13:19:51 +0000
> > +++ test/engine-test.py 2010-10-10 14:57:44 +0000
> > @@ -688,6 +688,62 @@
> >                events = self.engine.find_events(
> >                        TimeRange.always(), [], StorageState.Any, 0,
> ResultType.LeastRecentOrigin)
> >                self.assertEquals([e[0][1] for e in events], ["116",
> "118", "119"])
> > +
> > +       def testResultTypesMostRecentMimetType(self):
> > +               import_events("test/data/twenty_events.js", self.engine)
> > +
> > +               events = self.engine.find_events(
> > +                       TimeRange.always(), [], StorageState.Any, 0,
> ResultType.MostRecentMimeType)
> > +               self.assertEquals([e[0][1] for e in events], ['119',
> '114', '110', '107'])
> > +
> > +       def testResultTypesLeastRecentMimetType(self):
> > +               import_events("test/data/twenty_events.js", self.engine)
> > +
> > +               events = self.engine.find_events(
> > +                       TimeRange.always(), [], StorageState.Any, 0,
> ResultType.LeastRecentMimeType)
> > +               self.assertEquals([e[0][1] for e in events], ['107',
> '110', '114', '119'])
> > +
> > +       def testResultTypesMostPopularMimetType(self):
> > +               import_events("test/data/twenty_events.js", self.engine)
> > +
> > +               events = self.engine.find_events(
> > +                       TimeRange.always(), [], StorageState.Any, 0,
> ResultType.MostPopularMimeType)
> > +               self.assertEquals([e[0][1] for e in events], ['119',
> '110', '107', '114'])
> > +
> > +       def testResultTypesLeastPopularMimetType(self):
> > +               import_events("test/data/twenty_events.js", self.engine)
> > +
> > +               events = self.engine.find_events(
> > +                       TimeRange.always(), [], StorageState.Any, 0,
> ResultType.LeastPopularMimeType)
> > +               self.assertEquals([e[0][1] for e in events], ['114',
> '107', '110', '119'])
> > +
> > +       def testResultTypesMostRecentSubjectInterpretation(self):
> > +               import_events("test/data/twenty_events.js", self.engine)
> > +
> > +               events = self.engine.find_events(
> > +                       TimeRange.always(), [], StorageState.Any, 0,
> ResultType.MostRecentSubjectInterpretation)
> > +               self.assertEquals([e[0][1] for e in events], ['119',
> '118', '116', '106'])
> > +
> > +       def testResultTypesLeastRecentSubjectInterpretation(self):
> > +               import_events("test/data/twenty_events.js", self.engine)
> > +
> > +               events = self.engine.find_events(
> > +                       TimeRange.always(), [], StorageState.Any, 0,
> ResultType.LeastRecentSubjectInterpretation)
> > +               self.assertEquals([e[0][1] for e in events], ['106',
> '116', '118', '119'])
> > +
> > +       def testResultTypesMostPopularSubjectInterpretation(self):
> > +               import_events("test/data/twenty_events.js", self.engine)
> > +
> > +               events = self.engine.find_events(
> > +                       TimeRange.always(), [], StorageState.Any, 0,
> ResultType.MostPopularSubjectInterpretation)
> > +               self.assertEquals([e[0][1] for e in events], ['119',
> '116', '106', '118'])
> > +
> > +       def testResultTypesLeastPopularSubjectInterpretation(self):
> > +               import_events("test/data/twenty_events.js", self.engine)
> > +
> > +               events = self.engine.find_events(
> > +                       TimeRange.always(), [], StorageState.Any, 0,
> ResultType.LeastPopularSubjectInterpretation)
> > +               self.assertEquals([e[0][1] for e in events], ['118',
> '106', '116', '119'])
> >
> >        def testRelatedForEventsSortRelevancy(self):
> >                import_events("test/data/apriori_events.js", self.engine)
>
> * I know it is done similar in other tests, but we should make tests good
> examples of how to use zeitgeist, so please change e[0][1] to e.timestamp
>
fixed

>
>
> >
> > === modified file 'zeitgeist/datamodel.py'
> > --- zeitgeist/datamodel.py      2010-09-25 13:19:51 +0000
> > +++ zeitgeist/datamodel.py      2010-10-10 14:57:44 +0000
> > @@ -1024,7 +1024,7 @@
> >        MostPopularSubjects = enum_factory(("One event for each subject
> only, "
> >                "ordered by the popularity of the subject"))
> >        LeastPopularSubjects = enum_factory(("One event for each subject
> only, "
> > -               "ordered ascendingly by popularity"))
> > +               "ordered ascendingly by popularity of the mimetype"))
>
> Huh? how is mimetype related to LeastPopularSubjects?

fixed

>

>        MostPopularActor = enum_factory(("The last event of each different
> actor,"
> >                "ordered by the popularity of the actor"))
> >        LeastPopularActor = enum_factory(("The last event of each
> different actor,"
> > @@ -1037,7 +1037,23 @@
> >                "ordered by the popularity of the origins"))
> >        LeastPopularOrigin = enum_factory(("The last event of each
> different origin,"
> >                "ordered ascendingly by the popularity of the origin"))
> > -       OldestActor = enum_factory(("The first event of each different
> actor"))
> > +       OldestActor = enum_factory(("The first event of each different
> actor"))
> > +       MostRecentSubjectInterpretation = enum_factory(("One event for
> each subject interpretation only, "
> > +               "ordered with the most recent events first"))
> > +       LeastRecentSubjectInterpretation = enum_factory(("One event for
> each subject interpretation only, "
> > +               "ordered with the least recent events first"))
> > +       MostPopularSubjectInterpretation = enum_factory(("One event for
> each subject interpretation only, "
> > +               "ordered by the popularity of the subject
> interpretation"))
> > +       LeastPopularSubjectInterpretation = enum_factory(("One event for
> each subject interpretation only, "
> > +               "ordered ascendingly by popularity of the subject
> interpretation"))
> > +       MostRecentMimeType = enum_factory(("One event for each mimetype
> only, "
> > +               "ordered with the most recent events first"))
> > +       LeastRecentMimeType = enum_factory(("One event for each mimetype
> only, "
> > +               "ordered with the least recent events first"))
> > +       MostPopularMimeType = enum_factory(("One event for each mimetype
> only, "
> > +               "ordered by the popularity of the mimetype"))
> > +       LeastPopularMimeType = enum_factory(("One event for each mimetype
> only, "
> > +               "ordered ascendingly by popularity of the mimetype"))
> >
>
> I'm always shockend when reading this part of datamodel.py, it always takes
> minutes for me to find the right ResultType, but this is not related to your
> changes here as we agreed on the structure of ResultType a few days ago.

Again this requires a separate bug report to be dealt with.


> --
> https://code.launchpad.net/~zeitgeist/zeitgeist/fix-655164/+merge/38077
> You proposed lp:~zeitgeist/zeitgeist/fix-655164 for merging.
>

OK please review again

-- 
This is me doing some advertisement for my blog http://seilo.geekyogre.com

https://code.launchpad.net/~zeitgeist/zeitgeist/fix-655164/+merge/38077
Your team Zeitgeist Framework Team is requested to review the proposed merge of lp:~zeitgeist/zeitgeist/fix-655164 into lp:zeitgeist.



Follow ups

References