def test_generates_full_test_case_for_a_call(self): alist = create(SequenceObject) call = create(FunctionCall, args={}, output=alist) put_on_timeline(call, alist) code_string = generate_test_case(call, template=unittest_template) assert_equal_strings("self.assertEqual([], function())\n", code_string) assert_equal(set([('module', 'function')]), code_string.imports)
def test_generates_full_test_case_for_a_call_with_side_effects_and_two_assertions_required(self): alist = create(SequenceObject) call = create(FunctionCall, args={'x': alist}, output=alist, definition=create(Function, args=['x'])) se = ListAppend(alist, create(ImmutableObject, obj=1)) call.add_side_effect(se) put_on_timeline(alist, call, se) assert_equal_strings("alist1 = []\n" "alist2 = []\n" "self.assertEqual(alist1, function(alist1))\n" "alist2.append(1)\n" "self.assertEqual(alist2, alist1)\n", generate_test_case(call, template=unittest_template))
def test_generates_full_test_case_for_a_call_with_side_effects_and_two_assertions_required( self): alist = create(SequenceObject) call = create(FunctionCall, args={'x': alist}, output=alist, definition=create(Function, args=['x'])) se = ListAppend(alist, create(ImmutableObject, obj=1)) call.add_side_effect(se) put_on_timeline(alist, call, se) assert_equal_strings( "alist1 = []\n" "alist2 = []\n" "self.assertEqual(alist1, function(alist1))\n" "alist2.append(1)\n" "self.assertEqual(alist2, alist1)\n", generate_test_case(call, template=unittest_template))