Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
klen committed Mar 29, 2016
2 parents 183ab6c + f085551 commit 2c7889f
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
@@ -1,6 +1,6 @@
[bumpversion]
commit = True
current_version = 5.5.5
current_version = 5.5.6
files = mixer/__init__.py
tag = True
tag_name = {new_version}
Expand Down
2 changes: 1 addition & 1 deletion mixer/__init__.py
Expand Up @@ -14,7 +14,7 @@
# Module information
# ==================

__version__ = "5.5.5"
__version__ = "5.5.6"
__project__ = "mixer"
__author__ = "horneds <horneds@gmail.com>"
__license__ = "BSD"
16 changes: 16 additions & 0 deletions mixer/backend/peewee.py
Expand Up @@ -80,6 +80,22 @@ def gen_field(self, field):
return field.name, SKIP_VALUE
return super(TypeMixer, self).gen_field(field)

def gen_select(self, field_name, select):
""" Select exists value from database.
:param field_name: Name of field for generation.
:return : None or (name, value) for later use
"""
field = self.__fields[field_name]
if not isinstance(field.scheme, ForeignKeyField):
return field_name, SKIP_VALUE

model = field.scheme.rel_model
value = model.select().order_by(fn.Random()).get()
return self.get_value(field_name, value)

def is_required(self, field):
""" Return True is field's value should be defined.
Expand Down
6 changes: 6 additions & 0 deletions tests/test_peewee.py
Expand Up @@ -66,3 +66,9 @@ def test_reload(mixer):

person = mixer.reload(person)
assert person.name == 'true'


def test_select(mixer):
person = mixer.blend(Person)
pet = mixer.blend(Pet, owner=mixer.SELECT)
assert person == pet.owner

0 comments on commit 2c7889f

Please sign in to comment.