launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #05835
[Merge] lp:~benji/launchpad/bug-894177-2 into lp:launchpad
Benji York has proposed merging lp:~benji/launchpad/bug-894177-2 into lp:launchpad.
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
Related bugs:
Bug #894177 in Launchpad itself: "run_jobs.py pofile_stats oopses: permission denied for relation productseries"
https://bugs.launchpad.net/launchpad/+bug/894177
For more details, see:
https://code.launchpad.net/~benji/launchpad/bug-894177-2/+merge/84676
In moving translations statistics updates into a cron job I missed some permissions it would need when running against products. This branch adds those permissions and adds tests that fail without the permissions in place. The branch also makes the pre-existing tests assert proper permissions.
Tests: bin/test -c -m lp.translations.tests.test_pofilestatsjob
Lint: "make lint" reports none
QA:
- note the translation statistics for a project
- make a translation change to a project (like submit a message string and ask
for review)
- verify that the statistics haven't changed
- ask a LOSA, er, webops to run cronscripts/run_jobs.py pofile_stats
- verify that they report that the job did not raise an exception
- verify that the statistics have changed
--
https://code.launchpad.net/~benji/launchpad/bug-894177-2/+merge/84676
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~benji/launchpad/bug-894177-2 into lp:launchpad.
=== modified file 'database/schema/security.cfg'
--- database/schema/security.cfg 2011-12-06 11:00:07 +0000
+++ database/schema/security.cfg 2011-12-06 21:22:27 +0000
@@ -446,6 +446,8 @@
public.job = SELECT, UPDATE, DELETE
public.pofilestatsjob = SELECT, UPDATE, DELETE
public.potmsgset = SELECT
+public.product = SELECT
+public.productseries = SELECT
public.distroseries = SELECT
public.distribution = SELECT
public.sourcepackagename = SELECT
=== modified file 'lib/lp/translations/tests/test_pofilestatsjob.py'
--- lib/lp/translations/tests/test_pofilestatsjob.py 2011-11-10 15:02:49 +0000
+++ lib/lp/translations/tests/test_pofilestatsjob.py 2011-12-06 21:22:27 +0000
@@ -6,10 +6,12 @@
__metaclass__ = type
+from canonical.config import config
from canonical.launchpad.webapp.testing import verifyObject
from canonical.testing.layers import (
LaunchpadZopelessLayer,
)
+from lp.app.enums import ServiceUsage
from lp.services.job.interfaces.job import (
IJobSource,
IRunnableJob,
@@ -45,6 +47,26 @@
job = pofilestatsjob.schedule(pofile.id)
# Just scheduling the job doesn't update the statistics.
self.assertEqual(pofile.potemplate.messageCount(), 0)
+ LaunchpadZopelessLayer.switchDbUser(config.pofile_stats.dbuser)
+ job.run()
+ # Now that the job ran, the statistics have been updated.
+ self.assertEqual(pofile.potemplate.messageCount(), 1)
+
+ def test_with_product(self):
+ product = self.factory.makeProduct(
+ translations_usage=ServiceUsage.LAUNCHPAD)
+ productseries = self.factory.makeProductSeries(product=product)
+ potemplate = self.factory.makePOTemplate(productseries=productseries)
+ pofile = self.factory.makePOFile('en', potemplate)
+ # Create a message so we have something to have statistics about.
+ singular = self.factory.getUniqueString()
+ self.factory.makePOTMsgSet(pofile.potemplate, singular)
+ # The statistics are still at 0, even though there is a message.
+ self.assertEqual(potemplate.messageCount(), 0)
+ job = pofilestatsjob.schedule(pofile.id)
+ # Just scheduling the job doesn't update the statistics.
+ self.assertEqual(pofile.potemplate.messageCount(), 0)
+ LaunchpadZopelessLayer.switchDbUser(config.pofile_stats.dbuser)
job.run()
# Now that the job ran, the statistics have been updated.
self.assertEqual(pofile.potemplate.messageCount(), 1)