def test_generates_side_effect_line_for_user_object_attribute_change(self): klass = Class("UserClass", module=Module(None, 'user_module')) user_obj = UserObject(None, klass) assign = Assign('user_obj', user_obj, 1) se = AttributeRebind(user_obj, 'attr', create(ImmutableObject, obj=1)) assert_equal_strings("user_obj = UserClass()\nuser_obj.attr = 1\n", generate_test_contents([assign, se], None))
def test_generates_line_with_variable_reference(self): line = EqualAssertionLine(ImmutableObject('string'), ModuleVariableReference('mod', 'var', 1.5), 2) result = generate_test_contents([line], unittest_template) assert_equal_strings("self.assertEqual('string', mod.var)\n", result) assert_equal(set(['mod']), result.imports)
def generate_test_case(testable_interaction, template): """This functions binds all other functions from generator submodules together (assertions, cleaner, optimizer, objects_namer and builder), implementing full test generation process, from a testable interaction object to a test case string. Call|UserObject|Method|Function -> assertions_for_interaction -> [Event] -> remove_objects_unworthy_of_naming -> [Event] -> optimize -> [Event] -> name_objects_on_timeline -> [Event] -> generate_test_contents -> CodeString """ return \ generate_test_contents( name_objects_on_timeline( optimize( remove_objects_unworthy_of_naming( assertions_for_interaction(testable_interaction)))), template)
def test_generates_side_effect_line_for_builtin_method_call(self): alist = create(SequenceObject) assign = Assign('alist', alist, 1) se = ListAppend(alist, create(ImmutableObject, obj=1)) assert_equal_strings("alist = []\nalist.append(1)\n", generate_test_contents([assign, se], None))
def test_adds_import_for_an_assertion_line(self): aline = EqualAssertionLine(create(SequenceObject), create(FunctionCall), 1) assert_equal(set([('module', 'function')]), generate_test_contents([aline], unittest_template).imports)
def test_generates_assertion_line(self): aline = EqualAssertionLine(create(SequenceObject), create(FunctionCall), 1) assert_equal_strings("self.assertEqual([], function())\n", generate_test_contents([aline], unittest_template))
def test_generates_assignment_line_with_variable_reference(self): assign = Assign('foo', ModuleVariableReference('mod', 'var', 0), 1) assert_equal_strings("foo = mod.var\n", generate_test_contents([assign], None))
def test_generates_assignment_line_with_name(self): assign = Assign('foo', 'bar', 1) assert_equal_strings("foo = bar\n", generate_test_contents([assign], None))
def test_adds_import_for_an_assertion_line(self): aline = EqualAssertionLine(create(SequenceObject), create(FunctionCall), 1) assert_equal( set([('module', 'function')]), generate_test_contents([aline], unittest_template).imports)
def test_generates_assertion_line(self): aline = EqualAssertionLine(create(SequenceObject), create(FunctionCall), 1) assert_equal_strings( "self.assertEqual([], function())\n", generate_test_contents([aline], unittest_template))
def test_generates_assignment_line_with_object(self): assign = Assign('foo', create(SequenceObject), 1) assert_equal_strings("foo = []\n", generate_test_contents([assign], None))