示例#1
0
文件: test_main.py 项目: frac/lettuce
def test_terrain_import_exception():
    "lettuce error tries to import "
    string = 'Lettuce has tried to load the conventional environment ' \
        'module "terrain"\nbut it has errors, check its contents and ' \
        'try to run lettuce again.\n'

    mox = Mox()

    mox.StubOutWithMock(lettuce, '_import')
    mox.StubOutWithMock(lettuce, 'fs')
    mox.StubOutWithMock(lettuce.fs, 'FileSystem')
    mox.StubOutWithMock(lettuce.sys, 'stderr')
    mox.StubOutWithMock(lettuce.sys, 'path')

    lettuce._import('terrain').AndRaise(Exception('foo bar'))

    lettuce.fs.FeatureLoader("[some path]")
    lettuce.sys.stderr.write(string)
    lettuce.sys.path.insert(0, '[some path]')

    mox.ReplayAll()

    try:
        lettuce.Runner("[some path]")
    except SystemExit:
        mox.VerifyAll()
示例#2
0
def test_after_each_all_is_executed_before_each_all():
    "terrain.before.each_all and terrain.after.each_all decorators"
    import lettuce
    from lettuce.fs import FeatureLoader
    world.all_steps = []

    mox = Mox()

    loader_mock = mox.CreateMock(FeatureLoader)
    mox.StubOutWithMock(lettuce.sys, 'path')
    mox.StubOutWithMock(lettuce, 'fs')
    mox.StubOutWithMock(lettuce.fs, 'FileSystem')
    mox.StubOutWithMock(lettuce, 'Feature')
    mox.StubOutWithMock(lettuce, '_import')

    lettuce._import('terrain')

    lettuce.fs.FeatureLoader('some_basepath').AndReturn(loader_mock)

    lettuce.sys.path.insert(0, 'some_basepath')
    lettuce.sys.path.remove('some_basepath')

    loader_mock.find_and_load_step_definitions()
    loader_mock.find_feature_files().AndReturn(['some_basepath/foo.feature'])
    lettuce.Feature.from_file('some_basepath/foo.feature'). \
        AndReturn(Feature.from_string(FEATURE2))

    mox.ReplayAll()

    runner = lettuce.Runner('some_basepath')
    CALLBACK_REGISTRY.clear()
    @before.all
    def set_state_to_before():
        world.all_steps.append('before')

    @step('append "during" to states')
    def append_during_to_all_steps(step):
        world.all_steps.append("during")

    @after.all
    def set_state_to_after(total):
        world.all_steps.append('after')
        isinstance(total, TotalResult)

    runner.run()

    mox.VerifyAll()

    assert_equals(
        world.all_steps,
        ['before', 'during', 'during', 'after']
    )

    mox.UnsetStubs()
示例#3
0
文件: test_main.py 项目: frac/lettuce
def test_import():
    "lettuce importer does import"
    import os
    module = lettuce._import('os')
    assert_equals(os, module)