def test_child_added(self):
     """We should include child_ops if children were added"""
     lhs = FrozenNode("Root", label=['1111'], children=[
         FrozenNode("Child1", label=['1111', 'a'])])
     new_child = FrozenNode("Child2", label=['1111', 'b'])
     rhs = lhs.clone(children=lhs.children + (new_child,))
     result = dict(difftree.changes_between(lhs, rhs))
     self.assertEqual(
         result['1111'],
         {'op': 'modified', 'child_ops': [('equal', 0, 1),   # 1111-a
                                          ('insert', 1, ('1111-b',))]})
 def test_child_order(self):
     """We should include child_ops if the order of children changed"""
     lhs = FrozenNode("Root", label=['1111'], children=[
         FrozenNode("Child1", label=['1111', 'a']),
         FrozenNode("Child2", label=['1111', 'b'])])
     rhs = lhs.clone(children=list(reversed(lhs.children)))
     result = dict(difftree.changes_between(lhs, rhs))
     self.assertEqual(
         result['1111'],
         # Note that these ops could change in other versions of difflib.
         {'op': 'modified', 'child_ops': [('insert', 0, ('1111-b',)),
                                          ('equal', 0, 1),  # 1111-a
                                          ('delete', 1, 2)]})
 def test_child_removed_with_edit(self):
     """We should include child_ops if children were modified and the
     parent's text was modified"""
     lhs = FrozenNode("Root", label=['1111'], children=[
         FrozenNode("Child1", label=['1111', 'a']),
         FrozenNode("Child2", label=['1111', 'b'])])
     rhs = lhs.clone(children=lhs.children[:1], text="Root modified")
     result = dict(difftree.changes_between(lhs, rhs))
     self.assertEqual(
         result['1111'],
         {'op': 'modified',
          'text': [('insert', len("Root"), " modified")],
          'child_ops': [('equal', 0, 1),   # 1111-a
                        ('delete', 1, 2)]})
예제 #4
0
 def test_child_added(self):
     """We should include child_ops if children were added"""
     lhs = FrozenNode("Root",
                      label=['1111'],
                      children=[FrozenNode("Child1", label=['1111', 'a'])])
     new_child = FrozenNode("Child2", label=['1111', 'b'])
     rhs = lhs.clone(children=lhs.children + (new_child, ))
     result = dict(difftree.changes_between(lhs, rhs))
     self.assertEqual(
         result['1111'],
         {
             'op':
             'modified',
             'child_ops': [
                 ('equal', 0, 1),  # 1111-a
                 ('insert', 1, ('1111-b', ))
             ]
         })
예제 #5
0
 def test_child_removed_with_edit(self):
     """We should include child_ops if children were modified and the
     parent's text was modified"""
     lhs = FrozenNode("Root",
                      label=['1111'],
                      children=[
                          FrozenNode("Child1", label=['1111', 'a']),
                          FrozenNode("Child2", label=['1111', 'b'])
                      ])
     rhs = lhs.clone(children=lhs.children[:1], text="Root modified")
     result = dict(difftree.changes_between(lhs, rhs))
     self.assertEqual(
         result['1111'],
         {
             'op': 'modified',
             'text': [('insert', len("Root"), " modified")],
             'child_ops': [
                 ('equal', 0, 1),  # 1111-a
                 ('delete', 1, 2)
             ]
         })
예제 #6
0
 def test_child_order(self):
     """We should include child_ops if the order of children changed"""
     lhs = FrozenNode("Root",
                      label=['1111'],
                      children=[
                          FrozenNode("Child1", label=['1111', 'a']),
                          FrozenNode("Child2", label=['1111', 'b'])
                      ])
     rhs = lhs.clone(children=list(reversed(lhs.children)))
     result = dict(difftree.changes_between(lhs, rhs))
     self.assertEqual(
         result['1111'],
         # Note that these ops could change in other versions of difflib.
         {
             'op':
             'modified',
             'child_ops': [
                 ('insert', 0, ('1111-b', )),
                 ('equal', 0, 1),  # 1111-a
                 ('delete', 1, 2)
             ]
         })
예제 #7
0
 def test_whitespace_comparison(self):
     """We shouldn't trigger diffs for whitespace changes"""
     lhs = FrozenNode(u"Some\t\nthing", label=['123'])
     rhs = lhs.clone(text=u"Some\u2009 thing")  # thin-space
     self.assertEqual(difftree.changes_between(lhs, rhs), [])
 def test_whitespace_comparison(self):
     """We shouldn't trigger diffs for whitespace changes"""
     lhs = FrozenNode(u"Some\t\nthing", label=['123'])
     rhs = lhs.clone(text=u"Some\u2009 thing")   # thin-space
     self.assertEqual(difftree.changes_between(lhs, rhs), [])