def test_prompt_renders_all_questions(self):
        question1 = dbx.Stub()
        question1.name = 'foo'
        result1 = object()

        question2 = dbx.Stub()
        question2.name = 'bar'
        result2 = object()

        result = object()
        with dbx.Spy() as render:
            render.reset()
            render.render(question1, {}).returns(result1)
            render.render(question2, {'foo': result1}).returns(result2)

        result = prompt([question1, question2], render=render)

        self.assertEquals({'foo': result1, 'bar': result2}, result)
        dbx.assert_that(
            render.render,
            dbx.called().with_args(question1, dbx.ANY_ARG))

        dbx.assert_that(
            render.render,
            dbx.called().with_args(question2,
                                   dbx.ANY_ARG))
Beispiel #2
0
    def test_chain_default_behavior(self):
        stub = doublex.Stub()

        doublex.set_default_behavior(stub, doublex.Spy)
        chained_spy = stub.foo()
        chained_spy.bar()

        doublex.assert_that(chained_spy.bar, doublex.called())
Beispiel #3
0
def create_invocation(name, args=None, kargs=None, retval=None):
    stub = doublex.Stub()

    args = args or tuple()
    kargs = kargs or {}
    context = InvocationContext(*args, **kargs)
    context.retval = retval
    invocation = Invocation(stub, name, context)
    return invocation
    def test_keyboard_interrupt_finalizes(self):
        question1 = dbx.Stub()
        question1.name = 'foo'
        question2 = dbx.Stub()
        question2.name = 'bar'

        with dbx.Mock() as render:
            render.reset()
            render.render(question1, dbx.ANY_ARG).raises(KeyboardInterrupt)
            render.render(question2, dbx.ANY_ARG)

        result = prompt([question1, question2], render=render)

        self.assertIsNone(result)
        dbx.assert_that(
            render.render,
            is_not(dbx.called().with_args(question2,
                                          dbx.ANY_ARG)))
    def test_prompt_renders_a_questions(self):
        question1 = dbx.Stub()
        question1.name = 'foo'
        result1 = object()
        with dbx.Mock() as render:
            render.render(question1, dbx.ANY_ARG).returns(result1)

        result = prompt([question1], render=render)

        self.assertEquals({'foo': result1}, result)
        dbx.assert_that(render, dbx.verify())