I am using mixer module to create test objects. Below is the model class.
class ContactQueue(models.Model):
arn = models.CharField(max_length=255)
queue_id = models.CharField(max_length=50)
queue_type = models.CharField(max_length=25)
name = models.CharField(max_length=25, null=True)
description = models.TextField(null=True)
outbound_caller_config = models.JSONField()
hours_of_operation_id = models.CharField(max_length=50)
status = models.CharField(
max_length=10,
choices=(
('ENABLED', 'ENABLED'),
('DISABLED', 'DISABLED'),
)
)
This is the test case that i have written.
class TestContactQueue:
def test_model(self):
obj = mixer.blend("dashboard.ContactQueue")
assert obj.pk == 1, "Should create a ContactQueue instance"
While running the tests i got this error.
__________________________________________________________________ TestContactQueue.test_model ___________________________________________________________________
self = <dashboard.tests.test_models.TestContactQueue object at 0x000002329C1C8548>
def test_model(self):
> obj = mixer.blend("dashboard.ContactQueue")
dashboard\tests\test_models.py:21:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
..\venv\lib\site-packages\mixer\main.py:568: in blend
return type_mixer.blend(**values)
..\venv\lib\site-packages\mixer\main.py:116: in blend
for name, value in defaults.items()
..\venv\lib\site-packages\mixer\main.py:113: in <genexpr>
value.gen_value(self, name, value)
..\venv\lib\site-packages\mixer\mix_types.py:229: in gen_value
return type_mixer.gen_field(field)
..\venv\lib\site-packages\mixer\backend\django.py:273: in gen_field
return super(TypeMixer, self).gen_field(field)
..\venv\lib\site-packages\mixer\main.py:193: in gen_field
return self.gen_value(field.name, field, unique=unique)
..\venv\lib\site-packages\mixer\main.py:238: in gen_value
fab = self.get_fabric(field, field_name, fake=fake)
..\venv\lib\site-packages\mixer\main.py:282: in get_fabric
self.__fabrics[key] = self.make_fabric(field.scheme, field_name, fake)
..\venv\lib\site-packages\mixer\backend\django.py:330: in make_fabric
fcls, field_name=fname, fake=fake, kwargs=kwargs)
..\venv\lib\site-packages\mixer\main.py:301: in make_fabric
factory=self.__factory).blend, **kwargs)
..\venv\lib\site-packages\mixer\main.py:55: in __call__
cls_type, mixer=mixer, factory=factory, fake=fake)
..\venv\lib\site-packages\mixer\main.py:88: in __init__
self.__fields = _.OrderedDict(self.__load_fields())
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <TypeMixer <class 'django.db.models.fields.json.JSONField'>>
def __load_fields(self):
> private_fields = getattr(self.__scheme._meta, 'private_fields', [])
E AttributeError: Mixer (dashboard.ContactQueue): type object 'JSONField' has no attribute '_meta'
..\venv\lib\site-packages\mixer\backend\django.py:389: AttributeError
----------------------------------------------------------------------- Captured log call ------------------------------------------------------------------------
ERROR mixer:main.py:574 Traceback (most recent call last):
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\main.py", line 568, in blend
return type_mixer.blend(**values)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\main.py", line 116, in blend
for name, value in defaults.items()
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\main.py", line 113, in <genexpr>
value.gen_value(self, name, value)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\mix_types.py", line 229, in gen_value
return type_mixer.gen_field(field)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\backend\django.py", line 273, in gen_field
return super(TypeMixer, self).gen_field(field)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\main.py", line 193, in gen_field
return self.gen_value(field.name, field, unique=unique)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\main.py", line 238, in gen_value
fab = self.get_fabric(field, field_name, fake=fake)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\main.py", line 282, in get_fabric
self.__fabrics[key] = self.make_fabric(field.scheme, field_name, fake)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\backend\django.py", line 330, in make_fabric
fcls, field_name=fname, fake=fake, kwargs=kwargs)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\main.py", line 301, in make_fabric
factory=self.__factory).blend, **kwargs)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\main.py", line 55, in __call__
cls_type, mixer=mixer, factory=factory, fake=fake)
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\main.py", line 88, in __init__
self.__fields = _.OrderedDict(self.__load_fields())
File "c:\users\aman\desktop\my_project\venv\lib\site-packages\mixer\backend\django.py", line 389, in __load_fields
private_fields = getattr(self.__scheme._meta, 'private_fields', [])
AttributeError: Mixer (dashboard.ContactQueue): type object 'JSONField' has no attribute '_meta'