def test_multi_line_partial_delete_block_update(self):
        code = "x=1\ny=2+x\nz=3"

        block = Block(code)
        code_block = CodeBlock(code=code)

        new_code="x=1\ny=2"

        code_block.code = new_code

        self.assertEqual(len(code_block.block.ast.nodes), 2)
        self.assertEqual(unparse(code_block.block.ast.nodes[0]).strip(), "x = 1")
        self.assertEqual(unparse(code_block.block.ast.nodes[1]).strip(), "y = 2")
    def test_block_static(self):
        """ Tests if a block changes if a line does not change """
        code = "x=1\ny=2\nz=3"

        block = Block(code)
        code_block = CodeBlock(code=code)

        new_code="x=1\ny=2"

        old_block = code_block.block.sub_blocks[0]
        code_block.code = new_code
        new_block = code_block.block.sub_blocks[0]

        self.assertEqual(unparse(old_block.ast), unparse(new_block.ast))
        self.assertEqual(old_block.uuid, new_block.uuid)
예제 #3
0
    def test_block_static(self):
        """ Tests if a block changes if a line does not change """
        code = "x=1\ny=2\nz=3"

        block = Block(code)
        code_block = CodeBlock(code=code)

        new_code = "x=1\ny=2"

        old_block = code_block.block.sub_blocks[0]
        code_block.code = new_code
        new_block = code_block.block.sub_blocks[0]

        self.assertEqual(unparse(old_block.ast), unparse(new_block.ast))
        self.assertEqual(old_block.uuid, new_block.uuid)
예제 #4
0
    def test_multi_line_partial_delete_block_update(self):
        code = "x=1\ny=2+x\nz=3"

        block = Block(code)
        code_block = CodeBlock(code=code)

        new_code = "x=1\ny=2"

        code_block.code = new_code

        self.assertEqual(len(code_block.block.ast.nodes), 2)
        self.assertEqual(
            unparse(code_block.block.ast.nodes[0]).strip(), "x = 1")
        self.assertEqual(
            unparse(code_block.block.ast.nodes[1]).strip(), "y = 2")
    def test_block_static_special_case(self):
        """ Tests if a block changes if a line does not change when its the only line unchanged """
        code = "x=1\ny=2+x\nz=3"

        block = Block(code)
        code_block = CodeBlock(code=code)

        old_ast = code_block.block.ast
        old_block = code_block.block.sub_blocks[0]

        new_code="x=1\ny=2"
        code_block.code = new_code
        new_block = code_block.block.sub_blocks[0]

        self.assertNotEqual(unparse(old_ast), unparse(code_block.block.ast))
        self.assertEqual(unparse(old_block.ast), unparse(new_block.ast))
        self.assertEqual(old_block.uuid, new_block.uuid)
예제 #6
0
    def test_block_static_special_case(self):
        """ Tests if a block changes if a line does not change when its the only line unchanged """
        code = "x=1\ny=2+x\nz=3"

        block = Block(code)
        code_block = CodeBlock(code=code)

        old_ast = code_block.block.ast
        old_block = code_block.block.sub_blocks[0]

        new_code = "x=1\ny=2"
        code_block.code = new_code
        new_block = code_block.block.sub_blocks[0]

        self.assertNotEqual(unparse(old_ast), unparse(code_block.block.ast))
        self.assertEqual(unparse(old_block.ast), unparse(new_block.ast))
        self.assertEqual(old_block.uuid, new_block.uuid)
    def test_block_decomposition(self):
        """ Tests if a block changes if its the only line left """

        code = "x=1\ny=2"

        block = Block(code)
        code_block = CodeBlock(code=code)

        old_ast = code_block.block.ast
        old_block = code_block.block.sub_blocks[0]

        new_code="x=1"
        code_block.code = new_code
        new_block = code_block.block.sub_blocks[0]

        self.assertNotEqual(unparse(old_ast), unparse(code_block.block.ast))
        self.assertEqual(unparse(old_block.ast), unparse(new_block.ast))
        self.assertEqual(old_block.uuid, new_block.uuid)
예제 #8
0
    def test_block_decomposition(self):
        """ Tests if a block changes if its the only line left """

        code = "x=1\ny=2"

        block = Block(code)
        code_block = CodeBlock(code=code)

        old_ast = code_block.block.ast
        old_block = code_block.block.sub_blocks[0]

        new_code = "x=1"
        code_block.code = new_code
        new_block = code_block.block.sub_blocks[0]

        self.assertNotEqual(unparse(old_ast), unparse(code_block.block.ast))
        self.assertEqual(unparse(old_block.ast), unparse(new_block.ast))
        self.assertEqual(old_block.uuid, new_block.uuid)