示例#1
0
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'
示例#2
0
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()))
示例#3
0
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'}