Package ldaptor :: Package test :: Module test_entry_diff
[hide private]
[frames] | no frames]

Source Code for Module ldaptor.test.test_entry_diff

  1  """ 
  2  Test cases for ldaptor.diff 
  3  """ 
  4   
  5  from twisted.trial import unittest 
  6  from ldaptor import delta, entry 
  7   
8 -class TestDiffEntry(unittest.TestCase):
9 - def testEqual(self):
10 a = entry.BaseLDAPEntry(dn='dc=foo', 11 attributes={ 12 'foo': ['bar'], 13 }) 14 b = entry.BaseLDAPEntry(dn='dc=foo', 15 attributes={ 16 'foo': ['bar'], 17 }) 18 result = a.diff(b) 19 self.assertEquals(result, None)
20
22 a = entry.BaseLDAPEntry(dn='dc=foo', 23 attributes={ 24 'foo': ['bar'], 25 }) 26 b = entry.BaseLDAPEntry(dn='dc=foo', 27 attributes={ 28 'foo': ['bar'], 29 'baz': ['quux'], 30 }) 31 result = a.diff(b) 32 self.assertEquals(result, 33 delta.ModifyOp('dc=foo', 34 [ 35 delta.Add('baz', ['quux']), 36 ]))
37
39 a = entry.BaseLDAPEntry(dn='dc=foo', 40 attributes={ 41 'foo': ['bar'], 42 }) 43 b = entry.BaseLDAPEntry(dn='dc=foo', 44 attributes={ 45 'foo': ['bar'], 46 'baz': ['quux', 'thud', 'foo'], 47 }) 48 result = a.diff(b) 49 self.assertEquals(result, 50 delta.ModifyOp('dc=foo', 51 [ 52 delta.Add('baz', ['quux', 'thud', 'foo']), 53 ]))
54
55 - def testAdd_New_ManyTypes(self):
56 a = entry.BaseLDAPEntry(dn='dc=foo', 57 attributes={ 58 'foo': ['bar'], 59 }) 60 b = entry.BaseLDAPEntry(dn='dc=foo', 61 attributes={ 62 'foo': ['bar'], 63 'baz': ['quux'], 64 'bang': ['thud'], 65 }) 66 result = a.diff(b) 67 self.assertEquals(result, 68 delta.ModifyOp('dc=foo', 69 [ 70 delta.Add('bang', ['thud']), 71 delta.Add('baz', ['quux']), 72 ]))
73
75 a = entry.BaseLDAPEntry(dn='dc=foo', 76 attributes={ 77 'foo': ['bar'], 78 }) 79 b = entry.BaseLDAPEntry(dn='dc=foo', 80 attributes={ 81 'foo': ['bar', 'quux'], 82 }) 83 result = a.diff(b) 84 self.assertEquals(result, 85 delta.ModifyOp('dc=foo', 86 [ 87 delta.Add('foo', ['quux']), 88 ]))
89
91 a = entry.BaseLDAPEntry(dn='dc=foo', 92 attributes={ 93 'foo': ['bar'], 94 }) 95 b = entry.BaseLDAPEntry(dn='dc=foo', 96 attributes={ 97 'foo': ['bar', 'quux', 'thud', 'foo'], 98 }) 99 result = a.diff(b) 100 self.assertEquals(result, 101 delta.ModifyOp('dc=foo', 102 [ 103 delta.Add('foo', ['quux', 'thud', 'foo']), 104 ]))
105
107 a = entry.BaseLDAPEntry(dn='dc=foo', 108 attributes={ 109 'foo': ['bar'], 110 'baz': ['quux'], 111 }) 112 b = entry.BaseLDAPEntry(dn='dc=foo', 113 attributes={ 114 'foo': ['bar', 'thud', 'bang'], 115 'baz': ['quux', 'bar', 'stump'], 116 'bang': ['thud', 'barble'], 117 }) 118 result = a.diff(b) 119 self.assertEquals(result, 120 delta.ModifyOp('dc=foo', 121 [ 122 delta.Add('bang', ['thud', 'barble']), 123 delta.Add('baz', ['bar', 'stump']), 124 delta.Add('foo', ['thud', 'bang']), 125 ]))
126
127 - def testDelete_All_OneType(self):
128 a = entry.BaseLDAPEntry(dn='dc=foo', 129 attributes={ 130 'foo': ['bar'], 131 'baz': ['quux', 'thud'], 132 }) 133 b = entry.BaseLDAPEntry(dn='dc=foo', 134 attributes={ 135 'foo': ['bar'], 136 }) 137 result = a.diff(b) 138 self.assertEquals(result, 139 delta.ModifyOp('dc=foo', 140 [ 141 delta.Delete('baz', ['quux', 'thud']), 142 ]))
143
144 - def testDelete_Some_OneType(self):
145 a = entry.BaseLDAPEntry(dn='dc=foo', 146 attributes={ 147 'foo': ['bar'], 148 'baz': ['quux', 'thud'], 149 }) 150 b = entry.BaseLDAPEntry(dn='dc=foo', 151 attributes={ 152 'foo': ['bar'], 153 'baz': ['thud'], 154 }) 155 result = a.diff(b) 156 self.assertEquals(result, 157 delta.ModifyOp('dc=foo', 158 [ 159 delta.Delete('baz', ['quux']), 160 ]))
161
162 - def testComplex(self):
163 a = entry.BaseLDAPEntry(dn='cn=Paula Jensen,ou=Product Development,dc=airius,dc=com', 164 attributes={ 165 'description': ['Something'], 166 'telephonenumber': ['+123 456'], 167 'facsimiletelephonenumber': ['+1 408 555 9876'], 168 }) 169 b = entry.BaseLDAPEntry(dn='cn=Paula Jensen,ou=Product Development,dc=airius,dc=com', 170 attributes={ 171 'postalAddress': ['123 Anystreet $ Sunnyvale, CA $ 94086'], 172 'telephonenumber': ['+1 408 555 1234', '+1 408 555 5678'], 173 }) 174 result = a.diff(b) 175 self.assertEquals(result, 176 delta.ModifyOp('cn=Paula Jensen,ou=Product Development,dc=airius,dc=com', 177 [ 178 delta.Add('postalAddress', ['123 Anystreet $ Sunnyvale, CA $ 94086']), 179 delta.Delete('description', ['Something']), 180 delta.Delete('facsimiletelephonenumber', ['+1 408 555 9876']), 181 delta.Add('telephonenumber', ['+1 408 555 1234', '+1 408 555 5678']), 182 delta.Delete('telephonenumber', ['+123 456']), 183 ]))
184