Skip to content

Fix flakey IPP sample data rake spec#7363

Merged
aduth merged 2 commits intomainfrom
aduth-flakey-ipp-rake-spec
Nov 18, 2022
Merged

Fix flakey IPP sample data rake spec#7363
aduth merged 2 commits intomainfrom
aduth-flakey-ipp-rake-spec

Conversation

@aduth
Copy link
Contributor

@aduth aduth commented Nov 18, 2022

🛠 Summary of changes

Tries to resolve a flakey spec failure caused by other parts of the code also calling sleep.

The message 'sleep' was received by #<Object:386240 > but has already been received by #<Puma::ThreadPool::Automaton:0x000056521827c098>

Example failure: https://gitlab.login.gov/lg/identity-idp/-/jobs/157885

📜 Testing Plan

  • rspec spec/lib/tasks/dev_rake_spec.rb

changelog: Internal, Automated Testing, Improve reliability of successful automated tests
@aduth aduth requested review from a team and sheldon-b November 18, 2022 15:51
Copy link
Contributor

@zachmargolis zachmargolis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

See: #7363 (comment)

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>
stub_request_token
stub_request_enroll

expect_any_instance_of(Object).to receive(:sleep).exactly(10).times.with(0.2)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh I didn't even see we had expect_any_instance_of in here! Yeah no wonder this spec was flaking :shakes-fist:!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For my own curiosity, is it generally bad practice to use expect_any_instance_of in rspec? Or is it problematic when it's used in this specific way with sleep? (I think it's the latter, but want to check I'm not missing anything.)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

personally I think that expect_any_instance_of or allow_any_instance_of are kind of antipatterns. when stubbing, I think it's crucial to know which instance you're stubbing on, since there can be a lot of different things happening (like with a common method like sleep)

However, the _any_instance_of methods are useful in situations where we don't have access to the instances (acceptance specs, or classes that don't expose clear methods to stub), or cases like this where we don't know what instance the rake task is being called on.

And I think the issue here is that sleep is a fairly common method, and it's mixed in to every object via Kernel so it was just an unforunate combination of things that lead to this flakiness.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, thank you.

@aduth aduth merged commit bb10489 into main Nov 18, 2022
@aduth aduth deleted the aduth-flakey-ipp-rake-spec branch November 18, 2022 19:06
@mdiarra3 mdiarra3 mentioned this pull request Nov 21, 2022
mdiarra3 added a commit that referenced this pull request Nov 21, 2022
* Remove unreachable blank config lockout default logic (#7357)

* Remove unreachable blank config lockout default logic

changelog: Internal, Code Quality, Remove unreachable code paths

* Replace references for removed constant

* Use Rails ActiveSupport for "time ago"

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>

* LG-8056 Encrypt document submissions and write them to S3 (#7351)

This commit adds tooling for encrypting documents and writing them to S3 after upload.

This is an addition to the attempts API. Eventually a reference for the image and an encryption key will be shared with IRS via the attmepts API. IRS will be able to use that reference and key to request the images associated with a document upload event. The changes to add those values to the attempts API are out of scope for this change and will follow in another commit.

The images are encrypted first with AES-256 using a randomnly generated key. The images are then uploaded to an S3 bucket with KMS encryption enabled. This offers protection that matches our current approach to PII storage, but with a partner controlled key instead of the user's password.

This implementation is partner specific. Since the images are only available to service providers that are using the attempts API it should only be enabled when the attempts API is also enabled.

[skip changelog]

* LG-8139: Increase max OTP confirmation attempts (#7358)

* LG-8139: Increase max OTP confirmation attempts

changelog: Improvements, Multi-factor Authentication, Increase number of allowed MFA confirmation attempts before lock-out

* Replace hard-coded max OTP attempts in specs

* Fix specs, split by max attempts bucket

* LG-8046: stop webauthn platform for new registrations/accounts (#7338)

* changelog: Improvements, Authentication, Disable new registering of platform auth accounts

* default webauthn off for now

* disable webauthn

* change naming convention for feature toggle

* change naming convention

* update webauthn platform

* add feature spec for sign in

* add test to ensure users dont see unneeded adding of platform auth in their account page

* fix html

* update spec and yml file

* remove unneeded spec

* dont show if u dont have face/touch unlock

* update to split up webauthn platform and romaing

* switch roaming and platform

* Drop ial2_quota tables (#7339)

[skip changelog]

* Shannon/lg 7522 update contact strings (#7362)

* update strings and links

* update failed fraud to include correct strings and links

* changelog: Improvements, Results emails, update text

* update reset pw link

* Drop proofing_costs table (LG-8028) (#7346)


[skip changelog]

* Try to fix flakey email spec (#7359)

changelog: Internal, Automated Testing, Improve reliability of successful automated tests

* Fix flakey IPP sample data rake spec (#7363)

* Fix flakey IPP sample data rake spec

changelog: Internal, Automated Testing, Improve reliability of successful automated tests

* Call / stub Kernel.sleep

See: #7363 (comment)

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>

* Add configurable phone carrier registration blocklist (#7366)

changelog: Improvements, Phone Registration, Add configurable phone carrier registration blocklist

* Remove unused PartnerApiReport(#7372)

- Remove associated API code, basically a revert of #5054

changelog: Internal, Reporting, Remove unused reporting code

* Prepare build-sass package for publish (#7370)

* Prepare build-sass package for publish

[skip changelog]

* Re-add private field

Required by linter

* Add README.md

* Add more package.json metadata

* Add LICENSE.md

* Remove files from knapsack report that no longer exist (#7373)

[skip changelog]

Co-authored-by: Andrew Duthie <andrew.duthie@gsa.gov>
Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>
Co-authored-by: Jonathan Hooper <jonathan.hooper@gsa.gov>
Co-authored-by: Shannon A <20867088+svalexander@users.noreply.github.com>
Co-authored-by: Mitchell Henke <mitchell.henke@gsa.gov>
@mdiarra3 mdiarra3 mentioned this pull request Nov 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants