launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #29486
[Merge] ~cjwatson/launchpad:factory-proxy-distroarchseriesfilter into launchpad:master
Colin Watson has proposed merging ~cjwatson/launchpad:factory-proxy-distroarchseriesfilter into launchpad:master.
Commit message:
Return proxied objects from makeDistroArchSeriesFilter
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/434622
`LaunchpadObjectFactory` issues `UnproxiedFactoryMethodWarning` when its methods return objects not wrapped in a security proxy, since that tends to result in tests that are less accurate simulations of production.
This required tightening up a few tests.
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:factory-proxy-distroarchseriesfilter into launchpad:master.
diff --git a/lib/lp/soyuz/tests/test_distroarchseriesfilter.py b/lib/lp/soyuz/tests/test_distroarchseriesfilter.py
index d456828..2f11751 100644
--- a/lib/lp/soyuz/tests/test_distroarchseriesfilter.py
+++ b/lib/lp/soyuz/tests/test_distroarchseriesfilter.py
@@ -14,7 +14,7 @@ from lp.soyuz.interfaces.distroarchseriesfilter import (
IDistroArchSeriesFilter,
IDistroArchSeriesFilterSet,
)
-from lp.testing import TestCaseWithFactory, person_logged_in
+from lp.testing import TestCaseWithFactory, admin_logged_in, person_logged_in
from lp.testing.layers import DatabaseFunctionalLayer, ZopelessDatabaseLayer
@@ -25,7 +25,8 @@ class TestDistroArchSeriesFilter(TestCaseWithFactory):
def test_implements_interfaces(self):
# DistroArchSeriesFilter implements IDistroArchSeriesFilter.
dasf = self.factory.makeDistroArchSeriesFilter()
- self.assertProvides(dasf, IDistroArchSeriesFilter)
+ with admin_logged_in():
+ self.assertProvides(dasf, IDistroArchSeriesFilter)
def test___repr__(self):
# `DistroArchSeriesFilter` objects have an informative __repr__.
@@ -42,7 +43,8 @@ class TestDistroArchSeriesFilter(TestCaseWithFactory):
dasf = self.factory.makeDistroArchSeriesFilter(
sense=DistroArchSeriesFilterSense.INCLUDE
)
- dasf.packageset.add(spns[:2])
+ with admin_logged_in():
+ dasf.packageset.add(spns[:2])
self.assertTrue(dasf.isSourceIncluded(spns[0]))
self.assertTrue(dasf.isSourceIncluded(spns[1]))
self.assertFalse(dasf.isSourceIncluded(spns[2]))
@@ -54,7 +56,8 @@ class TestDistroArchSeriesFilter(TestCaseWithFactory):
dasf = self.factory.makeDistroArchSeriesFilter(
sense=DistroArchSeriesFilterSense.EXCLUDE
)
- dasf.packageset.add(spns[:2])
+ with admin_logged_in():
+ dasf.packageset.add(spns[:2])
self.assertFalse(dasf.isSourceIncluded(spns[0]))
self.assertFalse(dasf.isSourceIncluded(spns[1]))
self.assertTrue(dasf.isSourceIncluded(spns[2]))
diff --git a/lib/lp/testing/factory.py b/lib/lp/testing/factory.py
index b95c374..a67916a 100644
--- a/lib/lp/testing/factory.py
+++ b/lib/lp/testing/factory.py
@@ -3602,8 +3602,10 @@ class LaunchpadObjectFactory(ObjectFactory):
# processor to go with it.
if architecturetag is None:
architecturetag = self.getUniqueString("arch")
- return distroseries.newArch(
- architecturetag, processor, official, owner, enabled
+ return ProxyFactory(
+ distroseries.newArch(
+ architecturetag, processor, official, owner, enabled
+ )
)
def makeBuildableDistroArchSeries(