Beispiel #1
0
  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)
Beispiel #2
0
  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)
Beispiel #3
0
    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')
Beispiel #4
0
    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')
Beispiel #5
0
    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')
Beispiel #6
0
    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)
Beispiel #10
0
  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
Beispiel #11
0
  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
Beispiel #12
0
    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)
Beispiel #13
0
    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"))
Beispiel #14
0
    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')
Beispiel #15
0
    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"))
Beispiel #16
0
    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')
Beispiel #17
0
  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)
Beispiel #18
0
 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"))
Beispiel #19
0
 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))