def test_userpassword_attribute(topo_m2, _delete_after): """Modifications of userpassword attribute in an MMR environment were successful however a error message was displayed in the error logs which was curious. :id: bdcf0464-a947-11ea-9f0d-8c16451d917b :setup: MMR with 2 masters :steps: 1. Add the test user to S1 2. Check that user's has been propogated to Supplier 2 3. modify user's userpassword attribute on supplier 2 4. check the error logs on suppler 1 to make sure the error message is not there :expected results: 1. Should succeeds 2. Should succeeds 3. Should succeeds 4. Should succeeds """ m1 = topo_m2.ms["master1"] m2 = topo_m2.ms["master2"] # Add the test user to S1 user1 = UserAccounts(m1, DEFAULT_SUFFIX, rdn=None).create_test_user(uid=1, gid=1) repl_manager = ReplicationManager(DEFAULT_SUFFIX) repl_manager.wait_for_replication(m1, m2, timeout=100) # Check that user's has been propogated to Supplier 2 user2 = UserAccount(m2, user1.dn) assert user2.status() # modify user's userpassword attribute on supplier 2 user2.replace('userpassword', 'fred1') repl_manager.wait_for_replication(m1, m2, timeout=100) assert user1.get_attr_val_utf8('userpassword') # check the error logs on suppler 1 to make sure the error message is not there assert not m1.searchErrorsLog("can\'t add a change for uid=")
def test_deleting_twice(topo_m2): """Deleting entry twice crashed a server :id: 94045560-a64c-11ea-93d6-8c16451d917b :setup: MMR with 2 masters :steps: 1. Adding entry 2. Deleting the same entry from s1 3. Deleting the same entry from s2 after some seconds :expected results: 1. Should succeeds 2. Should succeeds 3. Should succeeds """ m1 = topo_m2.ms["master1"] m2 = topo_m2.ms["master2"] # Adding entry user1 = UserAccounts(m1, DEFAULT_SUFFIX, rdn=None).create_test_user(uid=1, gid=1) repl_manager = ReplicationManager(DEFAULT_SUFFIX) repl_manager.wait_for_replication(m1, m2, timeout=100) user2 = UserAccount(m2, f'uid=test_user_1,{DEFAULT_SUFFIX}') assert user2.status() # Deleting the same entry from s1 user1.delete() repl_manager.wait_for_replication(m1, m2, timeout=100) # Deleting the same entry from s2 after some seconds with pytest.raises(ldap.NO_SUCH_OBJECT): user2.delete() assert m1.status() assert m2.status()
def test_rename_entry(topo_m2, _delete_after): """Rename entry crashed a server :id: 3866f9d6-a946-11ea-a3f8-8c16451d917b :setup: MMR with 2 masters :steps: 1. Adding entry 2. Stop Agreement for both 3. Change description 4. Change will not reflect on other master 5. Turn on agreement on both 6. Change will reflect on other master :expected results: 1. Should succeeds 2. Should succeeds 3. Should succeeds 4. Should succeeds 5. Should succeeds 6. Should succeeds """ m1 = topo_m2.ms["master1"] m2 = topo_m2.ms["master2"] # Adding entry user1 = UserAccounts(m1, DEFAULT_SUFFIX, rdn=None).create_test_user(uid=1, gid=1) repl_manager = ReplicationManager(DEFAULT_SUFFIX) repl_manager.wait_for_replication(m1, m2, timeout=100) user2 = UserAccount(m2, user1.dn) assert user2.status() # Stop Agreement for both agree1 = Agreements(m1).list()[0] agree2 = Agreements(m2).list()[0] for agree in [agree1, agree2]: agree.pause() # change description user1.replace('description', 'New Des') assert user1.get_attr_val_utf8('description') # Change will not reflect on other master with pytest.raises(AssertionError): assert user2.get_attr_val_utf8('description') # Turn on agreement on both for agree in [agree1, agree2]: agree.resume() repl_manager.wait_for_replication(m1, m2, timeout=100) for instance in [user1, user2]: assert instance.get_attr_val_utf8('description')