Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@aglundahl
Copy link

@aglundahl aglundahl commented Jul 4, 2024

#764 fixed so that VCR's :turned_off status for the main thread can be read in a new thread, even if the status changes after the new thread was created.

However, the solution also introduced the problem that the :turned_off status isn't used for other threads than the main thread. This effectively makes it impossible to turn VCR on and off in a new thread.

This change, instead, creates new contexts with :turned_off and :ignore_cassettes set to nil by default. When the values are read, they are only used if they explicitly have been set on the thread's context. Otherwise the main thread's context is used.

Copy link
Member

@olleolleolle olleolleolle left a comment

Choose a reason for hiding this comment

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

Well, this looks handy. Does it pass tests?

@aglundahl aglundahl force-pushed the linked-context-fix branch from 3f34f59 to 2947bac Compare June 6, 2025 08:04
@aglundahl
Copy link
Author

Well, this looks handy. Does it pass tests?

Just updated my branch. Yes, the tests still pass.

@nvanoorschot
Copy link

I think this fix would solve an issue we encounter when using VCR in combination with parallel_tests. The turned_off state can leak from test into another.

35c5186 fixed so that VCR's `:turned_off` status for the main thread can be read
in a new thread, even if the status changes after the new thread was created.

However, the solution also introduced the problem that the `:turned_off` status
isn't used for other threads than the main thread. This effectively makes it
impossible to turn VCR on and off in a new thread.

This change, instead, creates new contexts with `:turned_off` and
`:ignore_cassettes` set to `nil` by default. When the values are read, they are
only used if they explicitly have been set on the thread's context. Otherwise
the main thread's context is used.
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