Merge lp:~danilo/launchpad/no-dummy-psl into lp:launchpad

Proposed by Данило Шеган
Status: Merged
Approved by: Robert Collins
Approved revision: no longer in the source branch.
Merged at revision: 11182
Proposed branch: lp:~danilo/launchpad/no-dummy-psl
Merge into: lp:launchpad
Diff against target: 409 lines (+61/-85)
7 files modified
lib/lp/translations/browser/productseries.py (+7/-7)
lib/lp/translations/browser/tests/test_breadcrumbs.py (+26/-12)
lib/lp/translations/configure.zcml (+1/-6)
lib/lp/translations/doc/canonical_url_examples.txt (+6/-5)
lib/lp/translations/interfaces/productserieslanguage.py (+2/-7)
lib/lp/translations/model/productserieslanguage.py (+12/-44)
lib/lp/translations/tests/test_productserieslanguage.py (+7/-4)
To merge this branch: bzr merge lp:~danilo/launchpad/no-dummy-psl
Reviewer Review Type Date Requested Status
Robert Collins (community) Approve
Review via email: mp+30293@code.launchpad.net

Commit message

Get rid of DummyProductSeriesLanguage.

Description of the change

= Get rid of dummy ProductSeriesLanguage =

When ProductSeriesLanguage was introduced, it was modelled after DistroSeriesLanguage. DistroSeriesLanguage is backed by persistent storage (it's an actual table in the DB), while ProductSeriesLanguage is only an in-memory object. As such, it is basically always a "dummy".

As part of reworking ISeriesLanguage interface to be more generic and re-usable, this is a refactoring branch that gets rid of the DummyProductSeriesLanguage and related methods.

= Tests =

bin/test -cvvt productserieslanguage

(we just confirm everything works as it used to: existing tests cover all the cases where we were using dummies, and the dummy_ProductSeriesLanguage test is explicit in unit-testing the "dummy" behaviour)

= QA =

https://translations.launchpad.dev/evolution/trunk/+lang/es (no-dummy version)
https://translations.launchpad.dev/evolution/trunk/+lang/sr (dummy version)

Both work in identical way to how they work today, but we've got less code for a net win.

= Launchpad lint =

Checking for conflicts and issues in changed files.

Linting changed files:
  lib/lp/translations/configure.zcml
  lib/lp/translations/browser/productseries.py
  lib/lp/translations/browser/tests/test_breadcrumbs.py
  lib/lp/translations/doc/canonical_url_examples.txt
  lib/lp/translations/interfaces/productserieslanguage.py
  lib/lp/translations/model/productserieslanguage.py
  lib/lp/translations/tests/test_productserieslanguage.py

To post a comment you must log in.
Revision history for this message
Robert Collins (lifeless) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/translations/browser/productseries.py'
--- lib/lp/translations/browser/productseries.py 2010-06-17 03:29:53 +0000
+++ lib/lp/translations/browser/productseries.py 2010-07-21 09:39:56 +0000
@@ -344,9 +344,7 @@
344344
345 Produces a list containing a ProductSeriesLanguage object for345 Produces a list containing a ProductSeriesLanguage object for
346 each language this product has been translated into, and for each346 each language this product has been translated into, and for each
347 of the user's preferred languages. Where the series has no347 of the user's preferred languages.
348 ProductSeriesLanguage for that language, we use a
349 DummyProductSeriesLanguage.
350 """348 """
351349
352 if self.context.potemplate_count == 0:350 if self.context.potemplate_count == 0:
@@ -369,11 +367,13 @@
369 pofile = pot.getPOFileByLang(lang.code)367 pofile = pot.getPOFileByLang(lang.code)
370 if pofile is None:368 if pofile is None:
371 pofile = pot.getDummyPOFile(lang.code)369 pofile = pot.getDummyPOFile(lang.code)
372 productserieslang = productserieslangset.getDummy(370 productserieslang = (
373 self.context, lang, pofile=pofile)371 productserieslangset.getProductSeriesLanguage(
372 self.context, lang, pofile=pofile))
374 else:373 else:
375 productserieslang = productserieslangset.getDummy(374 productserieslang = (
376 self.context, lang)375 productserieslangset.getProductSeriesLanguage(
376 self.context, lang))
377 productserieslangs.append(377 productserieslangs.append(
378 productserieslang)378 productserieslang)
379379
380380
=== modified file 'lib/lp/translations/browser/tests/test_breadcrumbs.py'
--- lib/lp/translations/browser/tests/test_breadcrumbs.py 2010-04-28 10:13:00 +0000
+++ lib/lp/translations/browser/tests/test_breadcrumbs.py 2010-07-21 09:39:56 +0000
@@ -23,7 +23,8 @@
23 name='crumb-tester', displayname="Crumb Tester")23 name='crumb-tester', displayname="Crumb Tester")
24 self.assertBreadcrumbs(24 self.assertBreadcrumbs(
25 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),25 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),
26 ("Translations", 'http://translations.launchpad.dev/crumb-tester')],26 ("Translations",
27 'http://translations.launchpad.dev/crumb-tester')],
27 product, rootsite='translations')28 product, rootsite='translations')
2829
29 def test_productseries(self):30 def test_productseries(self):
@@ -33,7 +34,8 @@
33 self.assertBreadcrumbs(34 self.assertBreadcrumbs(
34 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),35 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),
35 ("Series test", 'http://launchpad.dev/crumb-tester/test'),36 ("Series test", 'http://launchpad.dev/crumb-tester/test'),
36 ("Translations", 'http://translations.launchpad.dev/crumb-tester/test')],37 ("Translations",
38 'http://translations.launchpad.dev/crumb-tester/test')],
37 series, rootsite='translations')39 series, rootsite='translations')
3840
39 def test_distribution(self):41 def test_distribution(self):
@@ -41,7 +43,8 @@
41 name='crumb-tester', displayname="Crumb Tester")43 name='crumb-tester', displayname="Crumb Tester")
42 self.assertBreadcrumbs(44 self.assertBreadcrumbs(
43 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),45 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),
44 ("Translations", 'http://translations.launchpad.dev/crumb-tester')],46 ("Translations",
47 'http://translations.launchpad.dev/crumb-tester')],
45 distribution, rootsite='translations')48 distribution, rootsite='translations')
4649
47 def test_distroseries(self):50 def test_distroseries(self):
@@ -52,7 +55,8 @@
52 self.assertBreadcrumbs(55 self.assertBreadcrumbs(
53 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),56 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),
54 ("Test (1.0)", 'http://launchpad.dev/crumb-tester/test'),57 ("Test (1.0)", 'http://launchpad.dev/crumb-tester/test'),
55 ("Translations", 'http://translations.launchpad.dev/crumb-tester/test')],58 ("Translations",
59 'http://translations.launchpad.dev/crumb-tester/test')],
56 series, rootsite='translations')60 series, rootsite='translations')
5761
58 def test_project(self):62 def test_project(self):
@@ -60,7 +64,8 @@
60 name='crumb-tester', displayname="Crumb Tester")64 name='crumb-tester', displayname="Crumb Tester")
61 self.assertBreadcrumbs(65 self.assertBreadcrumbs(
62 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),66 [("Crumb Tester", 'http://launchpad.dev/crumb-tester'),
63 ("Translations", 'http://translations.launchpad.dev/crumb-tester')],67 ("Translations",
68 'http://translations.launchpad.dev/crumb-tester')],
64 project, rootsite='translations')69 project, rootsite='translations')
6570
66 def test_person(self):71 def test_person(self):
@@ -68,7 +73,8 @@
68 name='crumb-tester', displayname="Crumb Tester")73 name='crumb-tester', displayname="Crumb Tester")
69 self.assertBreadcrumbs(74 self.assertBreadcrumbs(
70 [("Crumb Tester", 'http://launchpad.dev/~crumb-tester'),75 [("Crumb Tester", 'http://launchpad.dev/~crumb-tester'),
71 ("Translations", 'http://translations.launchpad.dev/~crumb-tester')],76 ("Translations",
77 'http://translations.launchpad.dev/~crumb-tester')],
72 person, rootsite='translations')78 person, rootsite='translations')
7379
7480
@@ -77,14 +83,16 @@
77 def test_translationgroupset(self):83 def test_translationgroupset(self):
78 group_set = getUtility(ITranslationGroupSet)84 group_set = getUtility(ITranslationGroupSet)
79 self.assertBreadcrumbs(85 self.assertBreadcrumbs(
80 [("Translation groups", 'http://translations.launchpad.dev/+groups')],86 [("Translation groups",
87 'http://translations.launchpad.dev/+groups')],
81 group_set, rootsite='translations')88 group_set, rootsite='translations')
8289
83 def test_translationgroup(self):90 def test_translationgroup(self):
84 group = self.factory.makeTranslationGroup(91 group = self.factory.makeTranslationGroup(
85 name='test-translators', title='Test translators')92 name='test-translators', title='Test translators')
86 self.assertBreadcrumbs(93 self.assertBreadcrumbs(
87 [("Translation groups", 'http://translations.launchpad.dev/+groups'),94 [("Translation groups",
95 'http://translations.launchpad.dev/+groups'),
88 ("Test translators",96 ("Test translators",
89 'http://translations.launchpad.dev/+groups/test-translators')],97 'http://translations.launchpad.dev/+groups/test-translators')],
90 group, rootsite='translations')98 group, rootsite='translations')
@@ -111,7 +119,8 @@
111 ("Translations",119 ("Translations",
112 "http://translations.launchpad.dev/crumb-tester/test"),120 "http://translations.launchpad.dev/crumb-tester/test"),
113 ("Serbian (sr)",121 ("Serbian (sr)",
114 "http://translations.launchpad.dev/crumb-tester/test/+lang/sr")],122 "http://translations.launchpad.dev/"
123 "crumb-tester/test/+lang/sr")],
115 serieslanguage)124 serieslanguage)
116125
117 def test_productserieslanguage(self):126 def test_productserieslanguage(self):
@@ -119,7 +128,8 @@
119 name='crumb-tester', displayname="Crumb Tester")128 name='crumb-tester', displayname="Crumb Tester")
120 series = self.factory.makeProductSeries(129 series = self.factory.makeProductSeries(
121 name="test", product=product)130 name="test", product=product)
122 serieslanguage = getUtility(IProductSeriesLanguageSet).getDummy(131 psl_set = getUtility(IProductSeriesLanguageSet)
132 serieslanguage = psl_set.getProductSeriesLanguage(
123 series, self.language)133 series, self.language)
124134
125 self.assertBreadcrumbs(135 self.assertBreadcrumbs(
@@ -128,11 +138,14 @@
128 ("Translations",138 ("Translations",
129 "http://translations.launchpad.dev/crumb-tester/test"),139 "http://translations.launchpad.dev/crumb-tester/test"),
130 ("Serbian (sr)",140 ("Serbian (sr)",
131 "http://translations.launchpad.dev/crumb-tester/test/+lang/sr")],141 "http://translations.launchpad.dev/"
142 "crumb-tester/test/+lang/sr")],
132 serieslanguage)143 serieslanguage)
133144
134145
135class TestPOTemplateBreadcrumbs(BaseBreadcrumbTestCase):146class TestPOTemplateBreadcrumbs(BaseBreadcrumbTestCase):
147 """Test POTemplate breadcrumbs."""
148
136 def test_potemplate(self):149 def test_potemplate(self):
137 product = self.factory.makeProduct(150 product = self.factory.makeProduct(
138 name='crumb-tester', displayname="Crumb Tester",151 name='crumb-tester', displayname="Crumb Tester",
@@ -147,7 +160,8 @@
147 ("Translations",160 ("Translations",
148 "http://translations.launchpad.dev/crumb-tester/test"),161 "http://translations.launchpad.dev/crumb-tester/test"),
149 (smartquote('Template "template"'),162 (smartquote('Template "template"'),
150 "http://translations.launchpad.dev/crumb-tester/test/+pots/template")],163 "http://translations.launchpad.dev/"
164 "crumb-tester/test/+pots/template")],
151 potemplate)165 potemplate)
152166
153167
154168
=== modified file 'lib/lp/translations/configure.zcml'
--- lib/lp/translations/configure.zcml 2010-05-04 13:42:25 +0000
+++ lib/lp/translations/configure.zcml 2010-07-21 09:39:56 +0000
@@ -372,7 +372,7 @@
372 interface="lp.translations.interfaces.translationtemplateitem.ITranslationTemplateItem"/>372 interface="lp.translations.interfaces.translationtemplateitem.ITranslationTemplateItem"/>
373 </class>373 </class>
374374
375 <!-- ProductSeriesLanguage and Dummy -->375 <!-- ProductSeriesLanguage -->
376376
377 <adapter377 <adapter
378 provides="canonical.launchpad.webapp.interfaces.IBreadcrumb"378 provides="canonical.launchpad.webapp.interfaces.IBreadcrumb"
@@ -385,11 +385,6 @@
385 <allow385 <allow
386 interface="lp.translations.interfaces.productserieslanguage.IProductSeriesLanguage"/>386 interface="lp.translations.interfaces.productserieslanguage.IProductSeriesLanguage"/>
387 </class>387 </class>
388 <class
389 class="lp.translations.model.productserieslanguage.DummyProductSeriesLanguage">
390 <allow
391 interface="lp.translations.interfaces.productserieslanguage.IProductSeriesLanguage"/>
392 </class>
393388
394 <!-- ProductSeriesLanguageSet -->389 <!-- ProductSeriesLanguageSet -->
395390
396391
=== modified file 'lib/lp/translations/doc/canonical_url_examples.txt'
--- lib/lp/translations/doc/canonical_url_examples.txt 2009-09-17 16:22:32 +0000
+++ lib/lp/translations/doc/canonical_url_examples.txt 2010-07-21 09:39:56 +0000
@@ -50,13 +50,13 @@
5050
51 >>> potemplate = potemplatesubset['evolution-2.2']51 >>> potemplate = potemplatesubset['evolution-2.2']
52 >>> canonical_url(potemplate)52 >>> canonical_url(potemplate)
53 u'http://translations.launchpad.dev/ubuntu/hoary/+source/evolution/+pots/evolution-2.2'53 u'http://translations.../hoary/+source/evolution/+pots/evolution-2.2'
5454
55And we can get a particular PO file for this PO template by its language code.55And we can get a particular PO file for this PO template by its language code.
5656
57 >>> pofile = potemplate.getPOFileByLang('es')57 >>> pofile = potemplate.getPOFileByLang('es')
58 >>> canonical_url(pofile)58 >>> canonical_url(pofile)
59 u'http://translations.../ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es'59 u'http://translations.../hoary/+source/evolution/+pots/evolution-2.2/es'
6060
61Also, we can get the url to a translation message.61Also, we can get the url to a translation message.
6262
@@ -65,7 +65,7 @@
65 ... pofile.potemplate, pofile.language)65 ... pofile.potemplate, pofile.language)
66 >>> translationmessage.setPOFile(pofile)66 >>> translationmessage.setPOFile(pofile)
67 >>> print canonical_url(translationmessage)67 >>> print canonical_url(translationmessage)
68 http://translations.../ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/168 http://transl.../hoary/+source/evolution/+pots/evolution-2.2/es/1
6969
70Even for a dummy one.70Even for a dummy one.
7171
@@ -73,7 +73,7 @@
73 >>> translationmessage = potmsgset.getCurrentDummyTranslationMessage(73 >>> translationmessage = potmsgset.getCurrentDummyTranslationMessage(
74 ... pofile.potemplate, pofile.language)74 ... pofile.potemplate, pofile.language)
75 >>> print canonical_url(translationmessage)75 >>> print canonical_url(translationmessage)
76 http://translations.../ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/2076 http://transl.../hoary/+source/evolution/+pots/evolution-2.2/es/20
7777
78Upstream POTemplateSubsets work in much the same way, except they hang off a78Upstream POTemplateSubsets work in much the same way, except they hang off a
79product series. Let's get a product series.79product series. Let's get a product series.
@@ -173,7 +173,8 @@
173 >>> from lp.translations.interfaces.productserieslanguage import (173 >>> from lp.translations.interfaces.productserieslanguage import (
174 ... IProductSeriesLanguageSet)174 ... IProductSeriesLanguageSet)
175175
176 >>> coo_cah_serbian = getUtility(IProductSeriesLanguageSet).getDummy(176 >>> psl_set = getUtility(IProductSeriesLanguageSet)
177 >>> coo_cah_serbian = psl_set.getProductSeriesLanguage(
177 ... productseries, serbian)178 ... productseries, serbian)
178 >>> canonical_url(coo_cah_serbian)179 >>> canonical_url(coo_cah_serbian)
179 u'http://translations.launchpad.dev/coo/cah/+lang/sr'180 u'http://translations.launchpad.dev/coo/cah/+lang/sr'
180181
=== modified file 'lib/lp/translations/interfaces/productserieslanguage.py'
--- lib/lp/translations/interfaces/productserieslanguage.py 2009-10-30 19:38:18 +0000
+++ lib/lp/translations/interfaces/productserieslanguage.py 2010-07-21 09:39:56 +0000
@@ -49,7 +49,6 @@
49 last_changed_date = Datetime(49 last_changed_date = Datetime(
50 title=_('When this file was last changed.'))50 title=_('When this file was last changed.'))
5151
52
53 def getPOFilesFor(potemplates):52 def getPOFilesFor(potemplates):
54 """Return `POFiles` for each of `potemplates`, in the same order.53 """Return `POFiles` for each of `potemplates`, in the same order.
5554
@@ -67,10 +66,6 @@
67class IProductSeriesLanguageSet(Interface):66class IProductSeriesLanguageSet(Interface):
68 """The set of productserieslanguages."""67 """The set of productserieslanguages."""
6968
70 def getDummy(productseries, language, variant=None):69 def getProductSeriesLanguage(productseries, language, variant=None,
71 """Return a new DummyProductSeriesLanguage for the given70 pofile=None):
72 productseries and language.
73 """
74
75 def getProductSeriesLanguage(productseries, language, variant=None):
76 """Return a PSL for a productseries and a language."""71 """Return a PSL for a productseries and a language."""
7772
=== modified file 'lib/lp/translations/model/productserieslanguage.py'
--- lib/lp/translations/model/productserieslanguage.py 2009-10-30 19:39:58 +0000
+++ lib/lp/translations/model/productserieslanguage.py 2010-07-21 09:39:56 +0000
@@ -6,18 +6,17 @@
6__metaclass__ = type6__metaclass__ = type
77
8__all__ = [8__all__ = [
9 'DummyProductSeriesLanguage',
10 'ProductSeriesLanguage',9 'ProductSeriesLanguage',
11 'ProductSeriesLanguageSet',10 'ProductSeriesLanguageSet',
12 ]11 ]
1312
14from zope.interface import implements13from zope.interface import implements
1514
16from storm.expr import Sum15from storm.expr import Coalesce, Sum
17from storm.store import Store16from storm.store import Store
1817
19from lp.translations.utilities.rosettastats import RosettaStats18from lp.translations.utilities.rosettastats import RosettaStats
20from lp.translations.model.pofile import DummyPOFile, POFile19from lp.translations.model.pofile import POFile
21from lp.translations.model.potemplate import get_pofiles_for, POTemplate20from lp.translations.model.potemplate import get_pofiles_for, POTemplate
22from lp.translations.interfaces.productserieslanguage import (21from lp.translations.interfaces.productserieslanguage import (
23 IProductSeriesLanguage, IProductSeriesLanguageSet)22 IProductSeriesLanguage, IProductSeriesLanguageSet)
@@ -41,8 +40,8 @@
41 # Reset all cached counts.40 # Reset all cached counts.
42 self.setCounts()41 self.setCounts()
4342
44 def setCounts(self, total=None, imported=None, changed=None, new=None,43 def setCounts(self, total=0, imported=0, changed=0, new=0,
45 unreviewed=None, last_changed=None):44 unreviewed=0, last_changed=None):
46 """See `IProductSeriesLanguage`."""45 """See `IProductSeriesLanguage`."""
47 self._messagecount = total46 self._messagecount = total
48 # "currentcount" in RosettaStats conflicts our recent terminology47 # "currentcount" in RosettaStats conflicts our recent terminology
@@ -55,7 +54,6 @@
55 if last_changed is not None:54 if last_changed is not None:
56 self._last_changed_date = last_changed55 self._last_changed_date = last_changed
5756
58
59 def _getMessageCount(self):57 def _getMessageCount(self):
60 store = Store.of(self.language)58 store = Store.of(self.language)
61 query = store.find(Sum(POTemplate.messagecount),59 query = store.find(Sum(POTemplate.messagecount),
@@ -70,20 +68,16 @@
70 """See `IProductSeriesLanguage`."""68 """See `IProductSeriesLanguage`."""
71 store = Store.of(self.language)69 store = Store.of(self.language)
72 query = store.find(70 query = store.find(
73 (Sum(POFile.currentcount),71 (Coalesce(Sum(POFile.currentcount), 0),
74 Sum(POFile.updatescount),72 Coalesce(Sum(POFile.updatescount), 0),
75 Sum(POFile.rosettacount),73 Coalesce(Sum(POFile.rosettacount), 0),
76 Sum(POFile.unreviewed_count)),74 Coalesce(Sum(POFile.unreviewed_count), 0)),
77 POFile.language==self.language,75 POFile.language==self.language,
78 POFile.variant==None,76 POFile.variant==None,
79 POFile.potemplate==POTemplate.id,77 POFile.potemplate==POTemplate.id,
80 POTemplate.productseries==self.productseries,78 POTemplate.productseries==self.productseries,
81 POTemplate.iscurrent==True)79 POTemplate.iscurrent==True)
82 imported, changed, new, unreviewed = query[0]80 imported, changed, new, unreviewed = query[0]
83 if (imported is None or changed is None or
84 new is None or unreviewed is None):
85 # Set all counts to zero.
86 imported = changed = new = unreviewed = 0
87 self.setCounts(self._getMessageCount(), imported, changed,81 self.setCounts(self._getMessageCount(), imported, changed,
88 new, unreviewed)82 new, unreviewed)
8983
@@ -138,40 +132,14 @@
138 return get_pofiles_for(potemplates, self.language, self.variant)132 return get_pofiles_for(potemplates, self.language, self.variant)
139133
140134
141class DummyProductSeriesLanguage(ProductSeriesLanguage):
142 """See `IProductSeriesLanguage`.
143
144 Implementation of IProductSeriesLanguage for a language with no
145 translations.
146 """
147 implements(IProductSeriesLanguage)
148
149 def __init__(self, productseries, language, variant=None, pofile=None):
150 ProductSeriesLanguage.__init__(
151 self, productseries, language, variant, pofile)
152 self.setCounts(self._getMessageCount(), 0, 0, 0, 0)
153
154 def getPOFilesFor(self, potemplates):
155 """See `IProductSeriesLanguage`."""
156 return [
157 DummyPOFile(template, self.language, self.variant)
158 for template in potemplates
159 ]
160
161
162class ProductSeriesLanguageSet:135class ProductSeriesLanguageSet:
163 """See `IProductSeriesLanguageSet`.136 """See `IProductSeriesLanguageSet`.
164137
165 Provides a means to get a ProductSeriesLanguage or create a dummy.138 Provides a means to get a ProductSeriesLanguage.
166 """139 """
167 implements(IProductSeriesLanguageSet)140 implements(IProductSeriesLanguageSet)
168141
169 def getProductSeriesLanguage(self, productseries, language,142 def getProductSeriesLanguage(self, productseries, language,
170 variant=None):143 variant=None, pofile=None):
171 """See `IProductSeriesLanguageSet`."""144 """See `IProductSeriesLanguageSet`."""
172 return ProductSeriesLanguage(productseries, language, variant)145 return ProductSeriesLanguage(productseries, language, variant, pofile)
173
174 def getDummy(self, productseries, language, variant=None, pofile=None):
175 """See `IProductSeriesLanguageSet`."""
176 return DummyProductSeriesLanguage(
177 productseries, language, variant, pofile)
178146
=== modified file 'lib/lp/translations/tests/test_productserieslanguage.py'
--- lib/lp/translations/tests/test_productserieslanguage.py 2009-11-04 17:15:56 +0000
+++ lib/lp/translations/tests/test_productserieslanguage.py 2010-07-21 09:39:56 +0000
@@ -143,16 +143,19 @@
143 psl.last_changed_date),143 psl.last_changed_date),
144 stats)144 stats)
145145
146 def test_DummyProductSeriesLanguage(self):146 def test_dummy_ProductSeriesLanguage(self):
147 # With no templates all counts are zero.147 # With no templates all counts are zero.
148 psl = self.psl_set.getDummy(self.productseries, self.language)148 psl = self.psl_set.getProductSeriesLanguage(
149 self.productseries, self.language)
149 self.failUnless(verifyObject(IProductSeriesLanguage, psl))150 self.failUnless(verifyObject(IProductSeriesLanguage, psl))
150 self.assertPSLStatistics(psl, (0, 0, 0, 0, 0, 0, None))151 self.assertPSLStatistics(psl, (0, 0, 0, 0, 0, 0, None))
151152
152 # Adding a single template with 10 messages makes the total153 # Adding a single template with 10 messages makes the total
153 # count of messages go up to 10.154 # count of messages go up to 10.
154 potemplate = self.createPOTemplateWithPOTMsgSets(10)155 potemplate = self.createPOTemplateWithPOTMsgSets(10)
155 psl = self.psl_set.getDummy(self.productseries, self.language)156 psl = self.psl_set.getProductSeriesLanguage(
157 self.productseries, self.language)
158 psl.recalculateCounts()
156 self.assertPSLStatistics(159 self.assertPSLStatistics(
157 psl, (10, 0, 0, 0, 0, 0, None))160 psl, (10, 0, 0, 0, 0, 0, None))
158161
@@ -168,7 +171,7 @@
168 # Getting PSL through PSLSet gives an uninitialized object.171 # Getting PSL through PSLSet gives an uninitialized object.
169 psl = self.psl_set.getProductSeriesLanguage(172 psl = self.psl_set.getProductSeriesLanguage(
170 self.productseries, self.language)173 self.productseries, self.language)
171 self.assertEquals(psl.messageCount(), None)174 self.assertEquals(psl.messageCount(), 0)
172175
173 # So, we need to get it through productseries.productserieslanguages.176 # So, we need to get it through productseries.productserieslanguages.
174 psl = self.productseries.productserieslanguages[0]177 psl = self.productseries.productserieslanguages[0]