> @@ -34,13 +35,15 @@
> # Create some i386 builders ready to build PPA builds. Two
> # already exist in sampledata so we'll use those first.
> self.builder1 = getUtility(IBuilderSet)['bob']
> - self.builder2 = getUtility(IBuilderSet)['frog']
> + self.frog_builder = removeSecurityProxy(
> + getUtility(IBuilderSet)['frog'])
Why doesn't frog_builder have a security proxy? If it's just to call
private methods, it's better to remove the proxy when you call the
method. If you start passing frog_builder to methods in your tests, you
might get things passing in the tests, while failing in real code.
Better to be safe and only unwrap the objects when you know it's safe.
On Mon, Jan 11, 2010 at 03:08:17AM -0000, Muharem Hrnjadovic wrote: buildmaster/ manager. py' buildmaster/ manager. py 2009-07-26 14:19:49 +0000 buildmaster/ manager. py 2010-01-11 03:08:16 +0000 commit( ) findBuildCandid ate() builder. name, builder.url, builder.vm_host) setSlaveForTest ing(slave) dispatchBuildCa ndidate( candidate) findAndStartJob (buildd_ slave=slave) slaves. append( slave) commit( )
> === modified file 'lib/lp/
> --- lib/lp/
> +++ lib/lp/
> @@ -340,17 +340,9 @@
> transaction.
> continue
>
> - candidate = builder.
> - if candidate is None:
> - self.logger.debug(
> - "No build candidates available for builder.")
> - continue
> -
> slave = RecordingSlave(
> - builder.
> -
> - builder.
> - if builder.currentjob is not None:
> + candidate = builder.
> + if candidate is not None:
> recording_
> transaction.
Here you changed it to commit when no candidates are found...
> === modified file 'lib/lp/ soyuz/scripts/ buildd. py' soyuz/scripts/ buildd. py 2009-10-26 18:40:04 +0000 soyuz/scripts/ buildd. py 2010-01-11 03:08:16 +0000 is_available: warn('builder is not available. Ignored.') findBuildCandid ate() findAndStartJob () dispatchBuildCa ndidate( candidate)
> --- lib/lp/
> +++ lib/lp/
> @@ -201,12 +201,10 @@
> if not builder.
> self.logger.
> continue
> - candidate = builder.
> +
> + candidate = builder.
> if candidate is None:
> - self.logger.debug(
> - "No candidates available for builder.")
> continue
> - builder.
> self.txn.commit()
... but here you retain the behaviour of not commiting when no candidate
is found. Why was one place changed, but not the other?
> === modified file 'lib/lp/ soyuz/tests/ test_builder. py' soyuz/tests/ test_builder. py 2009-12-02 15:18:46 +0000 soyuz/tests/ test_builder. py 2010-01-11 03:08:16 +0000
> --- lib/lp/
> +++ lib/lp/
> @@ -34,13 +35,15 @@ IBuilderSet) ['bob'] IBuilderSet) ['frog' ] roxy( IBuilderSet) ['frog' ])
> # Create some i386 builders ready to build PPA builds. Two
> # already exist in sampledata so we'll use those first.
> self.builder1 = getUtility(
> - self.builder2 = getUtility(
> + self.frog_builder = removeSecurityP
> + getUtility(
Why doesn't frog_builder have a security proxy? If it's just to call
private methods, it's better to remove the proxy when you call the
method. If you start passing frog_builder to methods in your tests, you
might get things passing in the tests, while failing in real code.
Better to be safe and only unwrap the objects when you know it's safe.
> self.builder3 = self.factory. makeBuilder( name='builder3' ) makeBuilder( name='builder4' ) roxy( makeBuilder( name='builder4' ))
> - self.builder4 = self.factory.
> + self.builder4 = removeSecurityP
> + self.factory.
Same comment here.
> self.builder5 = self.factory. makeBuilder( name='builder5' ) prepareBreezyAu totest( ) IBuilderSet) ['bob'] IBuilderSet) ['frog' ] roxy( IBuilderSet) ['frog' ])
> self.builders = [
> self.builder1,
> - self.builder2,
> + self.frog_builder,
> self.builder3,
> self.builder4,
> self.builder5,
> @@ -62,7 +65,8 @@
> self.publisher.
>
> self.bob_builder = getUtility(
> - self.frog_builder = getUtility(
> + self.frog_builder = removeSecurityP
> + getUtility(
And here.
review needsinformation
-- /launchpad. net/~bjornt
Björn Tillenius | https:/