-
Notifications
You must be signed in to change notification settings - Fork 460
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix TestReconcileBatchJob #2350
Conversation
Signed-off-by: forsaken628 <[email protected]>
Signed-off-by: forsaken628 <[email protected]>
Signed-off-by: forsaken628 <[email protected]>
Signed-off-by: forsaken628 <[email protected]>
Signed-off-by: forsaken628 <[email protected]>
Signed-off-by: forsaken628 <[email protected]>
Signed-off-by: forsaken628 <[email protected]>
Signed-off-by: forsaken628 <[email protected]>
Signed-off-by: forsaken628 <[email protected]>
@forsaken628 Thank you for this contribution. |
According to the previous logic,call GetTrialObservationLog will return observationLogAvailable once and then observationLogUnavailable multiple times. I investigated the cause of the failure in the ci environment: in test 2, which should have returned observationLogAvailable, it actually returned observationLogUnavailable, indicating that GetTrialObservationLog was accidentally called once somewhere. Instead of locating where the accident occurred, I rewrote mockManagerClient to always return the same reply before calling DeleteTrialObservationLog, which I think is consistent with the semantics of ManagerClient. |
Thank you for clarifying the root cause. It seems that you split out multiple test case into dedicated case based on the result of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TBH, we should reimplement these tests as ginkgo BDD style, but that is out of scope of this PR.
So, I leave such refactoring in the future.
mockManagerClient.EXPECT().DeleteTrialObservationLog(gomock.Any()).Return(nil, nil).AnyTimes() | ||
t.Run(`Trial run with "Failed" BatchJob.`, func(t *testing.T) { | ||
g := gomega.NewGomegaWithT(t) | ||
mockMC.msg = observationLogUnavailable |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mockMC.msg = observationLogUnavailable | |
mockManagerClient.EXPECT().GetTrialObservationLog(gomock.Any()).Return(observationLogAvailable, nil).AnyTimes() |
Instead of this original mock client, can we reuse the autogenerated mock clients like this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need WithOverridableExpectations here, but github.com/golang/mock/mock does not support this feature.
Or "Each test should create a new Controller".
In my opinion, gomock is not flexible enough, and it complicates a simple thing for this scenario.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finally, I found another way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@forsaken628 I opened the issue to replace gomock with go.uber.com/gomock here: #2356
As a separate PR, could you work on the issue?
Signed-off-by: forsaken628 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/approve
Thank you for the great contribution!
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: tenzen-y The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Thank you for this amazing contribution @forsaken628! |
* update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * cleanup Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * use gomock Signed-off-by: forsaken628 <[email protected]> --------- Signed-off-by: forsaken628 <[email protected]>
* update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * cleanup Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * use gomock Signed-off-by: forsaken628 <[email protected]> --------- Signed-off-by: forsaken628 <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
…branch (#2362) * Fix TestReconcileBatchJob (#2350) * update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * cleanup Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * use gomock Signed-off-by: forsaken628 <[email protected]> --------- Signed-off-by: forsaken628 <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]> * Use cache-dependency-path in actions/setup-go for CI workflow (#2355) Signed-off-by: forsaken628 <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]> * Replace already closed github.com/golang/mock with go.uber.org/mock (#2357) * replace gomock Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * revert Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> --------- Signed-off-by: forsaken628 <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]> * Replace gRPC code generation tool from Znly/protoc to Buf (#2344) * Replace gRPC code generation tool from Znly/protoc to Buf Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * del build.sh Signed-off-by: forsaken628 <[email protected]> * cleanup Signed-off-by: forsaken628 <[email protected]> * fix test Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * refine Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * rm outter yaml Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> --------- Signed-off-by: forsaken628 <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]> * Upgrade the protobuf version to >=4.21.12,<5 (#2358) Signed-off-by: Yuki Iwai <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]> * [SDK] Fix empty list for env variables and numpy version (#2360) * [SDK] Fix empty list for env variables Signed-off-by: Andrey Velichkevich <[email protected]> * Fix numpy version in tests Signed-off-by: Andrey Velichkevich <[email protected]> --------- Signed-off-by: Andrey Velichkevich <[email protected]> --------- Signed-off-by: forsaken628 <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]> Signed-off-by: Yuki Iwai <[email protected]> Co-authored-by: coldWater <[email protected]> Co-authored-by: Yuki Iwai <[email protected]>
* update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * cleanup Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * use gomock Signed-off-by: forsaken628 <[email protected]> --------- Signed-off-by: forsaken628 <[email protected]>
* update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * cleanup Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * use gomock Signed-off-by: forsaken628 <[email protected]> --------- Signed-off-by: forsaken628 <[email protected]>
* update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * cleanup Signed-off-by: forsaken628 <[email protected]> * fix Signed-off-by: forsaken628 <[email protected]> * update Signed-off-by: forsaken628 <[email protected]> * use gomock Signed-off-by: forsaken628 <[email protected]> --------- Signed-off-by: forsaken628 <[email protected]>
What this PR does / why we need it:
Fix unstable tests
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):#1649
Checklist: