By inheriting test_claims, test_keys, and test_valid_jwt down below you are running the tests twice. This is not necessary and will slow down the suite. It's not necessary because you can trust the JWT generation will work as long as you pass in *any* compliant product object. This is the beauty of composition: it helps you scale. Since you are already testing the compliance of the in-app and app product objects then you don't need to re-test the JWT generation. Does that make sense?