I agree, it is pretty complex! I wanted to add a test for https://bugs.edge.launchpad.net/bzr/+bug/656667 and while the parameterization is quite thorough it's not obvious where to put it.
My inclination would be to split by per_* but this case does perhaps show that naming things that way might get unwieldy if there are multiple variables.
I agree, it is pretty complex! I wanted to add a test for https:/ /bugs.edge. launchpad. net/bzr/ +bug/656667 and while the parameterization is quite thorough it's not obvious where to put it.
My inclination would be to split by per_* but this case does perhaps show that naming things that way might get unwieldy if there are multiple variables.
Another approach would be to say, in each class
variations = [ByHttpClientIm plementation, ByHttpProtocolV ersion]
and expand from that. It would get reduce the action- at-a-distance effect, and perhaps make later manipulations easier.