def test_extract_multiple_delete_chunk(self): a = ast.parse(""" print a print b if c > b : print b print c print d print e if a > b : print a """) b = ast.parse(""" print a if c > b : print b print c if a > b : print b """) diff_tree = diffast.diff(a, b) diffast.diff2html(diff_tree) contexts = diffast.extract_chunks(diff_tree) self.assertEquals(len(contexts), 3)
def test_extract_delete_chunk(self): a = ast.parse(""" print a print b def foo(): if c > b : print b print c print d print e print f """) b = ast.parse(""" print a print b def foo(): if c > b : print c print d print e """) diff_tree = diffast.diff(a, b) diffast.diff2html(diff_tree) contexts = diffast.extract_chunks(diff_tree) self.assertEquals(len(contexts), 2)
def test_insert_stmt(self): a = ast.parse(""" print a """) b = ast.parse(""" print a print b """) diff_tree = diffast.diff(a, b) self.assertEquals(diff_tree.after.body[1].diff_info, 'insert')
def test_insert_a_try(self): a = ast.parse(""" print a print b print c """) b = ast.parse(""" print a try: print b print c except: print d """) diff_tree = diffast.diff(a, b) diffast.diff2html(diffast.diff(a, b)) self.assertEquals(diff_tree.after.body[1].diff_info, 'insert') self.assertEquals(diff_tree.before.body[1].diff_info, 'delete') self.assertEquals(diff_tree.after.body[1].diff_info, 'insert')
def test_delete_stmt(self): a = ast.parse(""" print a print b """) b = ast.parse(""" print a """) diff_tree = diffast.diff(a, b) self.assertEquals(diff_tree.before.body[1].diff_info, 'delete')
def _get_chunks(self, a, b): a = ast.parse(a) b = ast.parse(b) diff_tree = diffast.diff(a, b) chunks = diffast.extract_chunks(diff_tree) for chunk in chunks: print '*' print chunk print '*' return chunks, diff_tree.before, diff_tree.after
def test_539508_nova_virt_ironic_driver(self): with open(os.path.join("change_539508", "before_driver.py"), "r") as f: self.faulty_tree = ast.parse(f.read()) with open(os.path.join("change_539508", "after_driver.py"), "r") as f: self.fixed_tree = ast.parse(f.read()) diff_tree = diffast.diff(self.faulty_tree, self.fixed_tree) diffast.diff2html(diff_tree) chunks = diffast.extract_chunks(diff_tree) self.assertEquals(len(chunks), 1)
def test_contexts_kolla_client(self): with open(os.path.join("change_566719", "before_client.py"), "r") as f: self.faulty_tree = ast.parse(f.read()) with open(os.path.join("change_566719", "after_client.py"), "r") as f: self.fixed_tree = ast.parse(f.read()) diff_tree = diffast.diff(self.faulty_tree, self.fixed_tree) diffast.diff2html(diff_tree) chunks = diffast.extract_chunks(diff_tree) self.assertEquals(len(chunks), 3)
def test_contexts_notifier(self): with open(os.path.join("change_569845", "before_notifier.py"), "r") as f: self.faulty_tree = ast.parse(f.read()) with open(os.path.join("change_569845", "after_notifier.py"), "r") as f: self.fixed_tree = ast.parse(f.read()) diff_tree = diffast.diff(self.faulty_tree, self.fixed_tree) diffast.diff2html(diff_tree) chunks = diffast.extract_chunks(diff_tree) self.assertEquals(len(chunks), 4)
def test_extract_modified_chunk(self): a = ast.parse(""" print a """) b = ast.parse(""" print b """) diff_tree = diffast.diff(a, b) diffast.diff2html(diff_tree) chunks = diffast.extract_chunks(diff_tree) for chunk in chunks: print chunk
def test_extract_ctx(self): a = ast.parse(""" curr.get() """) b = ast.parse(""" current.get() """) diff_tree = diffast.diff(a, b) diffast.diff2html(diff_tree) chunks = diffast.extract_chunks(diff_tree) for chunk in chunks: print chunk
def test_567271_nova_compute_resource_tracker(self): with open(os.path.join("change_567271", "before_resource_tracker.py"), "r") as f: self.faulty_tree = ast.parse(f.read()) with open(os.path.join("change_567271", "after_resource_tracker.py"), "r") as f: self.fixed_tree = ast.parse(f.read()) diff_tree = diffast.diff(self.faulty_tree, self.fixed_tree) diffast.diff2html(diff_tree) chunks = diffast.extract_chunks(diff_tree) for c in chunks: print c self.assertEquals(len(chunks), 1)
def test_delete_an_if(self): a = ast.parse(""" a = 10 print a if a > 5: print "ciao" """) b = ast.parse(""" a = 10 print a print "ciao" """) diffast.diff2html(diffast.diff(a, b)) self.assertTrue(os.path.isfile("diff_tree.html"))
def test_replace_stmt(self): a = ast.parse(""" print a """) b = ast.parse(""" print b """) diff_tree = diffast.diff(a, b) diffast.diff2html(diff_tree) self.assertEquals(diff_tree.after.body[0].diff_info, 'update') self.assertEquals(diff_tree.before.body[0].values[0].diff_info, 'delete') self.assertEquals(diff_tree.after.body[0].values[0].diff_info, 'insert')
def test_diff2html(self): a = ast.parse(""" class Ciao(): def hola(self): print "hola" """) b = ast.parse(""" class Hola(): def hola(self): print "hola" """) os.remove("diff_tree.html") self.assertFalse(os.path.isfile("diff_tree.html")) diffast.diff2html(diffast.diff(a, b)) self.assertTrue(os.path.isfile("diff_tree.html"))
def test_insert_an_if(self): a = ast.parse(""" print a print b print c """) b = ast.parse(""" print a if a > 10: print b print c """) diff_tree = diffast.diff(a, b) self.assertEquals(diff_tree.after.body[1].diff_info, 'insert') self.assertEquals(diff_tree.before.body[1].diff_info, 'delete') self.assertEquals(diff_tree.after.body[1].diff_info, 'insert')
def test_extract_insert_chunk(self): a = ast.parse(""" print a print b def foo(): if c > b : print c print d print e """) b = ast.parse(""" print a print b def foo(): if c > b : print b print c print d print e print f """) diff_tree = diffast.diff(a, b) chunks = diffast.extract_chunks(diff_tree) self.assertEquals(len(chunks), 2)
def test_no_module(self): with self.assertRaises(Exception): diffast.diff(None, None) with self.assertRaises(Exception): diffast.diff(ast.Module(body=[]), ast.Str(s="Module"))
def test_diff_tree_obj(self): diff_tree = diffast.diff(ast.Module(body=[]), ast.Module(body=[])) self.assertIn("after", dir(diff_tree)) self.assertIn("before", dir(diff_tree))