Yes this is intended behavir, Default scope will affect all queries. Use unscoped to start a clean query again:
SoftwareVersion.unscoped.where(is_testing: true)
SoftwareVersion.unscoped.find(id: 4)
etc.
But that apart, if you're using the same table (with fixtures) for storing both Production and Testing records, then you're doing it wrong. Rails uses a totally different database for testing, so you don't need a column to distinguish. And if you put the fixtures under test/fixtures
, they will never get loaded in production at all.