And just, toss together a fixture to create a factory...
(This level of indirection wouldn't be required if I didn't have a very particular habit of how I structure my tests, but I don't care to change that habit.)
Initial attempt had a test failure because I missed a level of indirection. Added it back in, and, rerunning... Okay, that's much better. Let's see about those flake8 issues I was expecting... Ah, just one issue.
All right, that's all set. Let's see about the other one.
This one is a little bit more elaborate. I've got some common code in three tests, but rather than lifting it to the top level, I want to provide equivalent functionality through the API instead.
Let's see...
I just put together a first stab at this by making a simple wrapper class around one of the constants. There's still some room for improvements in the modules themselves, but that's a lower priority compared to improving the interface.
I just now rewrote the tests to use the new interface, and they passed! Very good.
The new interface is a little weird. Could be better.
I'm going to wrap up for now, but the next step is pretty clear, I think: work on the names for the unreleased API layer, so I don't have what feels like five different things called Argument, Command, Static, etc.