def test_lambda(): """ `Lambda` makers should return the output of the function you initialize them with. """ # Configured as assembler maker = makers.Lambda(lambda doc: 'foo') # Check the assembled result assembled = maker._assemble() assert assembled == 'foo' # Check the finished result finished = maker._finish(assembled) assert finished == 'foo' # Configured as finisher maker = makers.Lambda(lambda doc, v: 'bar', assembler=False, finisher=True) # Check the assembled result assembled = maker._assemble() assert assembled == None # Check the finished result finished = maker._finish(assembled) assert finished == 'bar' # Configured as both an assembler and finisher def func(doc, value=None): if value: return value + 'bar' return 'foo' maker = makers.Lambda(func, finisher=True) # Check the assembled result assembled = maker._assemble() assert assembled == 'foo' # Check the finished result finished = maker._finish(assembled) assert finished == 'foobar'
class UserFixture(Blueprint): _frame_cls = User _meta_fields = {'password'} _instructions = { 'first_name': makers.Faker('first_name'), 'last_name': makers.Faker('last_name') } password = makers.Static('password') email = makers.Lambda( lambda d: '{0}@getme.co.uk'.format(d['first_name'].lower()))
def test_dict_of(): """ `DictOf` makers should return a dictionary where each key's value is either a JSON type value the output of a maker. """ maker = makers.DictOf({ 'json_type': 'foo', 'maker': makers.Lambda(lambda doc: 'bar') }) # Check the assembled result assembled = maker._assemble() assert assembled == {'json_type': None, 'maker': 'bar'} # Check the finished result finished = maker._finish(assembled) assert finished == {'json_type': 'foo', 'maker': 'bar'}