You can define the version of the package you want to install aswell. So apt install -t testing foo=1.0.bar. Otherwise I am not sure it makes much sense to have both activated testing and a testing snapshot. Maybe deactivating testing snapshot might be useful aswell.
I wanted to keep the snapshot repository to install new packages from it, otherwise they would come from testing.
I used to do that in pure debian, where I would stay on testing and install selected packages from unstable, but that was easy with the different release names.
I’m a bit surprised you can pin by origin (host name) but not do the same when you install.
The only workaround I see now is that testing/ is a symlink to the release name, currently buster/.
I can just call the snapshot release “buster” in sources.list and be done with it.
I tried going back to having “testing” in both repo declarations and updating.
Again both apt commands work.
Note that even using other releases that are present on the repo works (i.e. “stable”) but some don’t: using “sid” returns this
E: The value 'sid' is invalid for APT::Default-Release as such a release is not available in the sources
Now I really have no idea how apt is matching these release names.