示例#1
0
def GeneratorWithSingleException(genname, input, exception):
    execution = EmptyProjectExecution()
    generator = Function(genname, input.keys(), is_generator=True)
    gobject = GeneratorObject(None, generator,
                              stable_serialize_call_arguments(execution, input),
                              generator)
    gobject.add_call(GeneratorObjectInvocation(generator, {},
        exception=execution.serialize(exception)))
    generator.add_call(gobject)
    return generator
示例#2
0
def GeneratorWithYields(genname, input, yields):
    execution = EmptyProjectExecution()
    generator = Function(genname, input.keys(), is_generator=True)
    gobject = GeneratorObject(None, generator,
                              stable_serialize_call_arguments(execution, input),
                              generator)
    for syield in map(execution.serialize, yields):
        gobject.add_call(GeneratorObjectInvocation(generator, {}, syield))
    generator.add_call(gobject)
    return generator
示例#3
0
def create_method_call(method, args, output, call_type, execution, user_object):
    sargs = stable_serialize_call_arguments(execution, args)
    if call_type == 'output':
        call = MethodCall(method, sargs)
        call.set_output(execution.serialize(output))
        return call
    elif call_type == 'exception':
        call = MethodCall(method, sargs)
        call.set_exception(execution.serialize(output))
        return call
    elif call_type == 'generator':
        gobject = GeneratorObject(None, method, sargs, user_object)
        for syield in map(execution.serialize, output):
            gobject.add_call(GeneratorObjectInvocation(method, {}, syield))
        return gobject
示例#4
0
    def test_generates_complete_assertion_for_functions_which_take_defined_generator_objects_as_arguments(self):
        execution = EmptyProjectExecution()
        def ssca(args):
            return stable_serialize_call_arguments(execution, args)
        s = execution.serialize

        mygen = Function('mygen', ['a', 'b'], is_generator=True)
        gobject = GeneratorObject(None, mygen, ssca({'a': 42, 'b': False}), mygen)
        gobject.add_call(GeneratorObjectInvocation(mygen, {}, s(42)))
        mygen.add_call(gobject)
        function = Function('invoke', ['g'])
        function.add_call(FunctionCall(function, {'g': gobject}, output=s(True)))

        result = generate_single_test_module(objects=[function, mygen])

        assert_contains(result, "from module import mygen")
        assert_contains(result, "def test_invoke_returns_true_for_mygen_instance(self):")
        assert_contains(result, "self.assertEqual(True, invoke(mygen(42, False)))")