Jaymon / prom

A PostgreSQL or SQLite orm for Python
MIT License
22 stars 4 forks source link

Testdata overriding methods #166

Closed Jaymon closed 1 year ago

Jaymon commented 1 year ago

This does not work:

class ModelData(prom.extras.testdata.ModelData):
    def get_<MODEL_NAME>_fields(self, **kwargs):
        instance = self.get_<OTHER_MODEL_NAME>(**kwargs)

because calling self.get_<OTHER_MODEL_NAME> passes in the orm_class and overrides the magic get_<OTHER_MODEL_NAME> resolver.

I was able to get it to work doing this:

class ModelData(prom.extras.testdata.ModelData):
    def get_<MODEL_NAME>_fields(self, **kwargs):
        orm_class = kwargs.pop("orm_class")
        instance = self.get_<OTHER_MODEL_NAME>(**kwargs)

But I'd love to get it to work automatically somehow, no idea how to do it yet though, or even if it is possible.