freeipa/ipatests/test_xmlrpc
Alexander Bokovoy 6c5f2bcb30 ipaldap: fix conversion from boolean OID to Python
In IPA framework we don't properly convert to Python bool type and just
return a string (TRUE or FALSE). This can be seen with many boolean
attributes, like

        Bool('idnsallowdynupdate?',
            cli_name='dynamic_update',
            label=_('Dynamic update'),
            doc=_('Allow dynamic updates.'),
            attribute=True,
            default=False,
            autofill=True
        ),

in 'ipa dnszone-show':

> > > api.Command.dnszone_show('ipa.test')['result']['idnsallowdynupdate']
['TRUE']

This is because we don't have the reverse (from LDAP to Python) mapping
for the LDAP boolean OID 1.3.6.1.4.1.1466.115.121.1.7.

When Web UI asks for the entry, it gets back JSON output that contains
this 'TRUE' value:

            "idnsallowdynupdate": [
                "TRUE"
            ],

Add proper mapping from LDAP to Python bool type. With this, a simple
'checkbox' type can be used in Web UI instead of a complex radio-box
setup.

Note that when IPA API is asked to return raw values, 'TRUE' and 'FALSE'
still returned. These are the actual LDAP boolean attribute values. Care
needs to be done in tests:

 - if output is from a command with --raw option, 'TRUE' or 'FALSE'
   should be expected

 - if output if from a normal (non-raw) command, True or False would be
   returned

Fixes: https://pagure.io/freeipa/issue/9171

Signed-off-by: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
2022-06-10 09:25:27 +02:00
..
data Add SHA384withRSA as a certificate signing algorithm 2021-07-09 13:21:00 -04:00
tracker ipaldap: fix conversion from boolean OID to Python 2022-06-10 09:25:27 +02:00
__init__.py Add marker needs_ipaapi and option to skip tests 2017-12-11 20:40:06 +01:00
mock_trust.py ipatests: adapt expected output with SID 2021-11-02 10:11:28 +01:00
objectclasses.py external-idp: add XMLRPC tests for External IdP objects and idp indicator 2022-05-10 15:52:41 +03:00
test_add_remove_cert_cmd.py pytest: Migrate xunit-style setups to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_attr.py Convert values using _SYNTAX_MAPPING with --delattr 2022-03-16 12:18:35 +02:00
test_automember_plugin.py pytest: Migrate unittest/nose to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_automount_plugin.py pylint: Fix useless-suppression 2022-03-11 13:37:08 -05:00
test_baseldap_plugin.py pylint: Fix useless-suppression 2022-03-11 13:37:08 -05:00
test_batch_plugin.py ipatests: adapt expected output with SID 2021-11-02 10:11:28 +01:00
test_ca_plugin.py tests: fix cleanup for CATracker 2020-07-07 10:07:48 -04:00
test_caacl_plugin.py pytest: Migrate xunit-style setups to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_caacl_profile_enforcement.py pytest: Migrate xunit-style setups to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_cert_plugin.py pylint: Fix use-maxsplit-arg 2022-03-11 13:37:08 -05:00
test_cert_request_ip_address.py fix iPAddress cert issuance for >1 host/service 2020-06-23 10:22:38 +10:00
test_certmap_plugin.py ipaldap: fix conversion from boolean OID to Python 2022-06-10 09:25:27 +02:00
test_certprofile_plugin.py ipaldap: fix conversion from boolean OID to Python 2022-06-10 09:25:27 +02:00
test_config_plugin.py config plugin: add a test ensuring EmptyModlist is returned 2022-01-13 14:20:59 -05:00
test_delegation_plugin.py ipatests: Add test for ACI attribute and permission uniqueness 2020-09-14 09:15:59 +03:00
test_dns_plugin.py ipaldap: fix conversion from boolean OID to Python 2022-06-10 09:25:27 +02:00
test_dns_realmdomains_integration.py ipaldap: fix conversion from boolean OID to Python 2022-06-10 09:25:27 +02:00
test_env_plugin.py ipatests: Add tests for env plugin 2021-06-28 14:16:56 +03:00
test_external_members.py pytest: Migrate unittest/nose to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_group_plugin.py ipatests: adapt expected output with SID 2021-11-02 10:11:28 +01:00
test_hbac_plugin.py ipaldap: fix conversion from boolean OID to Python 2022-06-10 09:25:27 +02:00
test_hbacsvcgroup_plugin.py Performance: Find commands: do not process members by default 2016-05-31 14:08:54 +02:00
test_hbactest_plugin.py Fix E712 comparison to True / False 2020-05-05 10:42:46 +02:00
test_host_plugin.py Fall back to krbprincipalname when validating host auth indicators 2021-07-13 17:57:28 -04:00
test_hostgroup_plugin.py Allow rename of a host group 2020-03-31 09:21:37 +03:00
test_idp_plugin.py external-idp: add XMLRPC tests for External IdP objects and idp indicator 2022-05-10 15:52:41 +03:00
test_idviews_plugin.py ipatests: update the expected output of user-add cmd 2021-11-02 10:11:28 +01:00
test_kerberos_principal_aliases.py ipatests: adapt expected output with SID 2021-11-02 10:11:28 +01:00
test_krbtpolicy.py external-idp: add XMLRPC tests for External IdP objects and idp indicator 2022-05-10 15:52:41 +03:00
test_location_plugin.py pytest: Migrate xunit-style setups to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_nesting.py pytest: Migrate xunit-style setups to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_netgroup_plugin.py ipatests: adapt expected output with SID 2021-11-02 10:11:28 +01:00
test_old_permission_plugin.py Copy-paste error in permssions plugin, CID 323649 2018-11-08 13:16:26 +01:00
test_otptoken_plugin.py 389-ds OTP lasttoken plugin: Add unit test 2018-02-15 14:10:48 +01:00
test_passwd_plugin.py Replace nose with unittest and pytest 2017-12-12 16:16:58 +01:00
test_permission_plugin.py ipatests: test that modifying a permission attrs handles failure 2021-01-13 13:50:45 +01:00
test_ping_plugin.py ipalib: move server-side plugins to ipaserver 2016-06-03 09:00:34 +02:00
test_plugins_plugin.py ipatests: Add tests for plugins plugin 2021-06-28 14:16:56 +03:00
test_privilege_plugin.py Removed objectclass from LDAP*ReverseMember based tests 2016-08-10 13:53:55 +02:00
test_pwpolicy_plugin.py ipatests: Check maxlife error message where minlife > maxlife specified 2022-03-16 12:17:08 +02:00
test_radiusproxy_plugin.py Test coverage for multiservers for radius proxy 2018-06-13 16:23:18 -04:00
test_range_plugin.py ipatests: update the expected output of user-add cmd 2021-11-02 10:11:28 +01:00
test_realmdomains_plugin.py Prevent installation with single label domains 2017-11-09 11:32:31 +01:00
test_replace.py pytest: Migrate xunit-style setups to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_role_plugin.py tests: account for ID overrides as members of groups and roles 2020-06-08 12:39:34 -04:00
test_schema_plugin.py test_schema_plugin: Add missing tests for command, class and topic commands 2021-09-20 17:53:53 +02:00
test_selfservice_plugin.py ipalib: move server-side plugins to ipaserver 2016-06-03 09:00:34 +02:00
test_selinuxusermap_plugin.py ipaldap: fix conversion from boolean OID to Python 2022-06-10 09:25:27 +02:00
test_service_plugin.py external-idp: add XMLRPC tests for External IdP objects and idp indicator 2022-05-10 15:52:41 +03:00
test_servicedelegation_plugin.py service delegation: allow to add and remove host principals 2020-05-14 21:47:17 +03:00
test_stageuser_plugin.py XMLRPC test: add a test for stageuser-add --user-auth-type 2021-07-06 08:14:33 +02:00
test_sudocmd_plugin.py pytest: Migrate xunit-style setups to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_sudocmdgroup_plugin.py pytest: Migrate xunit-style setups to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_sudorule_plugin.py Improve sudooption docs, make the option multi-value 2021-10-08 10:47:58 +02:00
test_trust_plugin.py ipatests: adapt expected output with SID 2021-11-02 10:11:28 +01:00
test_user_plugin.py Implement LDAP bind grace period 389-ds plugin 2022-05-30 17:24:22 +03:00
test_vault_plugin.py pytest: Migrate unittest/nose to Pytest fixtures 2020-02-12 18:08:32 +02:00
test_whoami_plugin.py Add test: test_xmlrpc/test_whoami_plugin.py 2017-07-12 15:54:55 +02:00
testcert.py Add absolute_import future imports 2018-04-20 09:43:37 +02:00
xmlrpc_test.py pylint: Fix deprecated-class 2022-03-11 13:37:08 -05:00