Skip to content

Commit

Permalink
tests: Adapt to CURL without NTLM support
Browse files Browse the repository at this point in the history
If CURL is built without NTLM support (e.g. if libcurl-minimal RPM
package is installed instead of libcurl on Fedora),
tests/test_handle.c failed:

    /home/test/librepo/tests/test_handle.c:61:F:Main:test_handle:0: Assertion 'lr_handle_setopt(h, ((void *)0), LRO_HTTPAUTHMETHODS, LR_AUTH_NTLM)' failed

The cause is that the test exhibing NTLM authentication also checks that
lr_handle_setopt() succeeds.

This patch stops checking a return value of lr_handle_setopt() in case
of LR_AUTH_NTLM because a meaning of the test is checking for memory
leaks.

A similar issue was in python/tests/test_handle.py:

    ERROR: test_handle_setget_attr (tests.test_handle.TestCaseHandle.test_handle_setget_attr)
    No exception should be raised.
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/home/test/librepo/tests/python/tests/test_handle.py", line 477, in test_handle_setget_attr
	h.httpauthmethods = librepo.LR_AUTH_NTLM
	^^^^^^^^^^^^^^^^^
      File "/home/test/librepo/redhat-linux-build/librepo/python/librepo/__init__.py", line 1537, in __setattr__
	self.setopt(ATTR_TO_LRO[attr], val)
	~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/test/librepo/redhat-linux-build/librepo/python/librepo/__init__.py", line 1529, in setopt
	_librepo.Handle.setopt(self, option, val)
	~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
    librepo.LibrepoException: (8, 'curl error: A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.', 'An Curl handle error')

This patch ignores excpetions with that error message. (I did not find a way of
accessing fields of exception value directly.)
  • Loading branch information
ppisar committed Jul 11, 2024
1 parent cdfdbb6 commit af22356
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
16 changes: 12 additions & 4 deletions tests/python/tests/test_handle.py
Original file line number Diff line number Diff line change
Expand Up @@ -474,14 +474,22 @@ def test_handle_setget_attr(self):
self.assertEqual(h.httpheader, None)

self.assertEqual(h.httpauthmethods, librepo.LR_AUTH_BASIC)
h.httpauthmethods = librepo.LR_AUTH_NTLM
self.assertEqual(h.httpauthmethods, librepo.LR_AUTH_NTLM)
try:
h.httpauthmethods = librepo.LR_AUTH_NTLM
except librepo.LibrepoException as exception:
if not "not found built-in" in str(exception):
raise exception
self.assertEqual(h.httpauthmethods, librepo.LR_AUTH_NTLM)
h.httpauthmethods = None
self.assertEqual(h.httpauthmethods, librepo.LR_AUTH_BASIC)

self.assertEqual(h.proxyauthmethods, librepo.LR_AUTH_BASIC)
h.proxyauthmethods = librepo.LR_AUTH_NTLM
self.assertEqual(h.proxyauthmethods, librepo.LR_AUTH_NTLM)
try:
h.proxyauthmethods = librepo.LR_AUTH_NTLM
except librepo.LibrepoException as exception:
if not "not found built-in" in str(exception):
raise exception
self.assertEqual(h.proxyauthmethods, librepo.LR_AUTH_NTLM)
h.proxyauthmethods = None
self.assertEqual(h.proxyauthmethods, librepo.LR_AUTH_BASIC)

Expand Down
2 changes: 1 addition & 1 deletion tests/test_handle.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ START_TEST(test_handle)
ck_assert(lr_handle_setopt(h, NULL, LRO_PROXY_SSLCLIENTCERT, "/etc/proxy_cert.pem"));
ck_assert(lr_handle_setopt(h, NULL, LRO_PROXY_SSLCLIENTKEY, "/etc/proxy_cert.key"));
ck_assert(lr_handle_setopt(h, NULL, LRO_PROXY_SSLCACERT, "/etc/proxy_ca.pem"));
ck_assert(lr_handle_setopt(h, NULL, LRO_HTTPAUTHMETHODS, LR_AUTH_NTLM));
(void)lr_handle_setopt(h, NULL, LRO_HTTPAUTHMETHODS, LR_AUTH_NTLM);
ck_assert(lr_handle_setopt(h, NULL, LRO_PROXYAUTHMETHODS, LR_AUTH_DIGEST));
lr_handle_free(h);
}
Expand Down

0 comments on commit af22356

Please sign in to comment.