https://codereview.appspot.com/10078043/diff/6001/state/state_test.go#newcode1390
state/state_test.go:1390: _, err = s.State.AddService("varnish",
s.AddTestingCharm(c, "varnish"))
On 2013/06/07 09:35:44, fwereade wrote:
> On 2013/06/07 09:15:37, dimitern wrote:
> > do you really need to do this twice? surely only one relation
followed by
> > destroy should be sufficient, but ymmv
> It'd support more sophisticated testing -- for event coalescing,
effect of
> Cleanup calls, etc -- quite nicely. Would be nice to see tests for
these cases.
Added some more and detected, that Cleanup() removes each document in an
own transaction which leads to more events. Will change this later in a
followup. Tests currently handle it.
https://codereview.appspot.com/10078043/diff/6001/state/watcher.go#newcode1288
state/watcher.go:1288: out := w.out
On 2013/06/07 09:15:37, dimitern wrote:
> is there always an initial event that makes this line necessary? istm
this will
> always cause a notification to be sent, even when there's nothing
coming on the
> in chan.
It only sent the initial event, afterwards out has been nil and so no
event has been sent. When theres a signal via in out is changed to the
out channel again, sents one event and is set to nil again.
Please take a look.
https:/ /codereview. appspot. com/10078043/ diff/6001/ state/state. go
File state/state.go (right):
https:/ /codereview. appspot. com/10078043/ diff/6001/ state/state. go#newcode1079 go:1079: TxnRevno int64 `bson:"txn-revno"`
state/state.
On 2013/06/07 09:15:37, dimitern wrote:
> You don't need to define this, it's automatically available.
Done.
https:/ /codereview. appspot. com/10078043/ diff/6001/ state/state_ test.go
File state/state_test.go (right):
https:/ /codereview. appspot. com/10078043/ diff/6001/ state/state_ test.go# newcode1357 test.go: 1357: defer cw.Stop()
state/state_
On 2013/06/07 09:40:10, fwereade wrote:
> I think `defer stop(c, cw)` would be slightly more correct.
Done.
https:/ /codereview. appspot. com/10078043/ diff/6001/ state/state_ test.go# newcode1390 test.go: 1390: _, err = s.State. AddService( "varnish" , rm(c, "varnish"))
state/state_
s.AddTestingCha
On 2013/06/07 09:35:44, fwereade wrote:
> On 2013/06/07 09:15:37, dimitern wrote:
> > do you really need to do this twice? surely only one relation
followed by
> > destroy should be sufficient, but ymmv
> It'd support more sophisticated testing -- for event coalescing,
effect of
> Cleanup calls, etc -- quite nicely. Would be nice to see tests for
these cases.
Added some more and detected, that Cleanup() removes each document in an
own transaction which leads to more events. Will change this later in a
followup. Tests currently handle it.
https:/ /codereview. appspot. com/10078043/ diff/6001/ state/watcher. go
File state/watcher.go (right):
https:/ /codereview. appspot. com/10078043/ diff/6001/ state/watcher. go#newcode1256 go:1256: in chan watcher.Change
state/watcher.
On 2013/06/07 09:15:37, dimitern wrote:
> in chan doesn't need to be a field of the watcher, you can create it
locally
> inside loop()
Done.
https:/ /codereview. appspot. com/10078043/ diff/6001/ state/watcher. go#newcode1288 go:1288: out := w.out
state/watcher.
On 2013/06/07 09:15:37, dimitern wrote:
> is there always an initial event that makes this line necessary? istm
this will
> always cause a notification to be sent, even when there's nothing
coming on the
> in chan.
It only sent the initial event, afterwards out has been nil and so no
event has been sent. When theres a signal via in out is changed to the
out channel again, sents one event and is set to nil again.
But I changed it to a simpler way.
https:/ /codereview. appspot. com/10078043/