#49527 Improve testing of ds* tools
Closed: wontfix Opened by firstyear.

Issue Description

Improve the testing of a number of important parts of the ds* toolset including user manipulation and improve the backend test.


Metadata Update from @firstyear:
- Custom field component adjusted to None
- Custom field origin adjusted to None
- Custom field reviewstatus adjusted to None
- Custom field type adjusted to None
- Custom field version adjusted to None

Metadata Update from @firstyear:
- Custom field reviewstatus adjusted to review (was: None)

Ack from me. Should the user test include account lockout too?

Metadata Update from @mreynolds:
- Custom field reviewstatus adjusted to ack (was: review)

Few tests are failing... No ack from me, for now...

src/lib389/lib389/tests/cli/conf_backend_test.py::test_backend_cli
https://paste.fedoraproject.org/paste/DSWwXv1km03UBAEaKQcXew

src/lib389/lib389/tests/cli/ctl_dbtasks_test.py::test_db2bak_bak2db
src/lib389/lib389/tests/cli/ctl_dbtasks_test.py::test_ldif2db_db2ldif_no_repl
src/lib389/lib389/tests/cli/ctl_dbtasks_test.py::test_ldif2db_db2ldif_repl
https://paste.fedoraproject.org/paste/mIwKs6YsVgDyjs7wRYIm8g

src/lib389/lib389/tests/cli/idm_user_test.py::test_user_tasks
https://paste.fedoraproject.org/paste/jGn27HSxdVHEYc4XllfnkA

And do we really need to create more functions with more suffixes like get_attr_val_utf8_l?
I think it is still better to use 'lower()' if we need that.

@spichugi These tests may only work on git master as there are fixes in master that they rely on. I'll make all the tests 1.4.0 only :)

Actually, I would rather NOT have the _l version, but the function I need is in the replication test suite ....

The issue is checking "does an attribute exist or not, and if not, set it". We also don't know what form we'll get it back in from the server. Often we don't know about the servers normalisation or not! So we can legitiametly get back:

  • ou=people
    *OU=People
  • OU=PEOPLE

And they are the same.

Really, best case is make a .compare_s call to the server to check this for us, and extend dsldapobject to support a "ensure_attr_contains" and "ensure_attr_is" that just does this whole logic for us, and that avoids the _l case.

However, I can still see cases where we might want to get back the value and do some kind of comparison and manipulation that involves it being normalised to lowercase, so I still see value in this, but I think for this logic there are better ways - again, I need the changes in the replication patch for it :)

0001-Ticket-49527-Improve-ds-cli-tool-testing.patch

This excludes a number of tests from older versions that don't have the required fixes for what we need.

Okay, I got you point. Sure, lets have the func with _l for now.

You have my ACK. :)

commit d3ba228724f4be5039256f5ec9290d6357ff6b7f
To ssh://git@pagure.io/389-ds-base.git
0457ea6..d3ba228 master -> master

Metadata Update from @firstyear:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/2586

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: fixed)

Metadata