pulseapi/utility/factories_utility.py (23 lines of code) (raw):
from random import choices, randint
from faker.providers import BaseProvider
# Used to return a random number of tags, issues or helptypes to associate with fake pulse entries or profile
def get_random_items(model):
items = model.objects.all()
return choices(items, k=randint(0, len(items)))
class ImageProvider(BaseProvider):
"""
A custom Faker Provider for relative image urls, for use with factory_boy
>>> from factory import Faker
>>> from pulseapi.utility.factories_utility import ImageProvider
>>> fake - Faker()
>>> Faker.add_provider(ImageProvider)
"""
base_path = 'images/placeholders/'
generic_images = (
'generic/tigerparrot.jpg',
'generic/photographer.jpg',
'generic/windfarm.jpg',
'generic/hotair.jpg',
'generic/computerandcoffee.jpg',
)
headshot_images = (
'people/woman.jpg',
'people/man.jpg',
'people/dino.jpg',
)
def generic_image(self):
"""
returns a path to one of the predefined generic placeholder images
"""
return '{}{}'.format(self.base_path, self.random_element(self.generic_images))
def people_image(self):
"""
returns a path to one of the predefined people placeholder images
"""
return '{}{}'.format(self.base_path, self.random_element(self.headshot_images))