コード例 #1
0
 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))
コード例 #2
0
 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)
コード例 #3
0
 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))
コード例 #4
0
ファイル: __init__.py プロジェクト: Br3nda/pythoscope
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)
コード例 #5
0
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)
コード例 #6
0
 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))
コード例 #7
0
 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)
コード例 #8
0
 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))
コード例 #9
0
 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))
コード例 #10
0
 def test_generates_assignment_line_with_name(self):
     assign = Assign('foo', 'bar', 1)
     assert_equal_strings("foo = bar\n",
                          generate_test_contents([assign], None))
コード例 #11
0
 def test_generates_assignment_line_with_name(self):
     assign = Assign('foo', 'bar', 1)
     assert_equal_strings("foo = bar\n",
                          generate_test_contents([assign], None))
コード例 #12
0
 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))
コード例 #13
0
 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)
コード例 #14
0
 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))
コード例 #15
0
 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))
コード例 #16
0
 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)
コード例 #17
0
 def test_generates_assignment_line_with_object(self):
     assign = Assign('foo', create(SequenceObject), 1)
     assert_equal_strings("foo = []\n",
                          generate_test_contents([assign], None))
コード例 #18
0
 def test_generates_assignment_line_with_object(self):
     assign = Assign('foo', create(SequenceObject), 1)
     assert_equal_strings("foo = []\n",
                          generate_test_contents([assign], None))