diff options
author | Garming Sam <garming@catalyst.net.nz> | 2016-07-14 16:56:50 +1200 |
---|---|---|
committer | Garming Sam <garming@samba.org> | 2016-07-15 10:01:29 +0200 |
commit | 00e828a8a8bf56b93fe650faaa9652081ebd27f7 (patch) | |
tree | ce72272240e2708cd3c41db7b8013dfb3c59d09f /source4/dsdb | |
parent | 9d8e7666c0daaffca14f88c25af971f6d6c9cfc1 (diff) | |
download | samba-00e828a8a8bf56b93fe650faaa9652081ebd27f7.tar.gz |
link_attrs: Add tests for one way links (and pseudo one-way)
Tested against Win2012R2. The deactivated link control has no effect on either
one way links or pseudo ones (only two-way ones presumably).
Signed-off-by: Garming Sam <garming@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/dsdb')
-rw-r--r-- | source4/dsdb/tests/python/linked_attributes.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/source4/dsdb/tests/python/linked_attributes.py b/source4/dsdb/tests/python/linked_attributes.py index c7afad4d862..cea3a010652 100644 --- a/source4/dsdb/tests/python/linked_attributes.py +++ b/source4/dsdb/tests/python/linked_attributes.py @@ -352,6 +352,74 @@ class LATests(samba.tests.TestCase): self.assert_back_links(u2, [g3, g2], sorted=True) self.assert_back_links(u3, [g3, g2, g1], sorted=True) + def test_one_way_attributes(self): + e1, e2 = self.add_objects(2, 'msExchConfigurationContainer', + 'e_one_way') + guid = self.get_object_guid(e2) + + self.add_linked_attribute(e1, e2, attr="addressBookRoots") + self.assert_forward_links(e1, [e2], attr='addressBookRoots') + + self.samdb.delete(e2) + + res = self.samdb.search("<GUID=%s>" % guid, + scope=ldb.SCOPE_BASE, + controls=['show_deleted:1', + 'show_recycled:1']) + + new_dn = str(res[0].dn) + self.assert_forward_links(e1, [new_dn], attr='addressBookRoots') + self.assert_forward_links(e1, [new_dn], + attr='addressBookRoots', + show_deactivated_link=0) + + def test_one_way_attributes_delete_link(self): + e1, e2 = self.add_objects(2, 'msExchConfigurationContainer', + 'e_one_way') + guid = self.get_object_guid(e2) + + self.add_linked_attribute(e1, e2, attr="addressBookRoots") + self.assert_forward_links(e1, [e2], attr='addressBookRoots') + + self.remove_linked_attribute(e1, e2, attr="addressBookRoots") + + self.assert_forward_links(e1, [], attr='addressBookRoots') + self.assert_forward_links(e1, [], attr='addressBookRoots', + show_deactivated_link=0) + + def test_pretend_one_way_attributes(self): + e1, e2 = self.add_objects(2, 'msExchConfigurationContainer', + 'e_one_way') + guid = self.get_object_guid(e2) + + self.add_linked_attribute(e1, e2, attr="addressBookRoots2") + self.assert_forward_links(e1, [e2], attr='addressBookRoots2') + + self.samdb.delete(e2) + res = self.samdb.search("<GUID=%s>" % guid, + scope=ldb.SCOPE_BASE, + controls=['show_deleted:1', + 'show_recycled:1']) + + new_dn = str(res[0].dn) + + self.assert_forward_links(e1, [], attr='addressBookRoots2') + self.assert_forward_links(e1, [], attr='addressBookRoots2', + show_deactivated_link=0) + + def test_pretend_one_way_attributes_delete_link(self): + e1, e2 = self.add_objects(2, 'msExchConfigurationContainer', + 'e_one_way') + guid = self.get_object_guid(e2) + + self.add_linked_attribute(e1, e2, attr="addressBookRoots2") + self.assert_forward_links(e1, [e2], attr='addressBookRoots2') + + self.remove_linked_attribute(e1, e2, attr="addressBookRoots2") + + self.assert_forward_links(e1, [], attr='addressBookRoots2') + self.assert_forward_links(e1, [], attr='addressBookRoots2', + show_deactivated_link=0) if "://" not in host: if os.path.isfile(host): |