klen / mixer

Mixer -- Is a fixtures replacement. Supported Django, Flask, SqlAlchemy and custom python objects.
Other
939 stars 96 forks source link

Improve exception when alchemy cannot find fabric for field #111

Closed orsinium closed 5 years ago

orsinium commented 5 years ago

Old error message:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/mixer/main.py", line 568, in blend
    return type_mixer.blend(**values)
  File "/usr/local/lib/python3.6/site-packages/mixer/main.py", line 116, in blend
    for name, value in defaults.items()
  File "/usr/local/lib/python3.6/site-packages/mixer/main.py", line 116, in <genexpr>
    for name, value in defaults.items()
  File "/usr/local/lib/python3.6/site-packages/mixer/mix_types.py", line 222, in gen_value
    return type_mixer.gen_field(field)
  File "/usr/local/lib/python3.6/site-packages/mixer/main.py", line 193, in gen_field
    return self.gen_value(field.name, field, unique=unique)
  File "/usr/local/lib/python3.6/site-packages/mixer/main.py", line 238, in gen_value
    fab = self.get_fabric(field, field_name, fake=fake)
  File "/usr/local/lib/python3.6/site-packages/mixer/main.py", line 282, in get_fabric
    self.__fabrics[key] = self.make_fabric(field.scheme, field_name, fake)
  File "/usr/local/lib/python3.6/site-packages/mixer/backend/sqlalchemy.py", line 218, in make_fabric
    stype, field_name=field_name, fake=fake, kwargs=kwargs)
  File "/usr/local/lib/python3.6/site-packages/mixer/main.py", line 301, in make_fabric
    factory=self.__factory).blend, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/mixer/main.py", line 50, in __call__
    raise ValueError('Invalid scheme: %s' % backup)
ValueError: Mixer (<class 'platform_alchemy.models.Strategy'>): Invalid scheme: None

Reason: Mixer cannot generate fake data for JSONB field.

New error message:

NameError: cannot make fabric for field params (<class 'sqlalchemy.dialects.postgresql.json.JSONB'>)
coveralls commented 5 years ago

Coverage Status

Coverage increased (+0.8%) to 87.538% when pulling 350bfaad128b0ba105bec57ce6b23bf7b681b0c4 on orsinium:fix/exception into 4f6fd1c8f73091672ca09fb63dfa030f3aed2466 on klen:master.

coveralls commented 5 years ago

Coverage Status

Coverage increased (+1.02%) to 87.768% when pulling 92b497281112acf166b3c93774641a72b779ddbb on orsinium:fix/exception into 4f6fd1c8f73091672ca09fb63dfa030f3aed2466 on klen:master.