Hello Tim. I'm pleased to hear that you figured it out before I had the chance to look at it thoroughly. Thanks for merging my changes.
Regards, Tomas On 16.05.2017 10:32, Tim Rühsen wrote: > Hi Tomas, > > fixed the problem by skipping the processing of 'pubring.kbx'. This file > is created by libgpgme if we change $HOME. > > Your changes have been pushed now. Thanks for your work. > > The charset/locale issue is a general problem when the test suite reads > and compares binary data. Currently, we don't have to fix that. > > > > With Best Regards, Tim > > > > On 05/15/2017 04:53 PM, Tomas Hozza wrote: >> Hello Tim. >> >> I run all the tests before sending patches and they all passed. If you can >> send me more info about the failures, I could have a look at it. >> >> My locale is: >> $ locale >> LANG=en_US.UTF-8 >> LC_CTYPE="en_US.UTF-8" >> LC_NUMERIC=sk_SK.UTF-8 >> LC_TIME=sk_SK.UTF-8 >> LC_COLLATE="en_US.UTF-8" >> LC_MONETARY=sk_SK.UTF-8 >> LC_MESSAGES="en_US.UTF-8" >> LC_PAPER=sk_SK.UTF-8 >> LC_NAME="en_US.UTF-8" >> LC_ADDRESS="en_US.UTF-8" >> LC_TELEPHONE="en_US.UTF-8" >> LC_MEASUREMENT=sk_SK.UTF-8 >> LC_IDENTIFICATION="en_US.UTF-8" >> LC_ALL= >> >> Thanks. >> >> Regards, >> Tomas >> >> On 15.05.2017 15:52, Tim Rühsen wrote: >>> Hi Tomas, >>> >>> thank you very much for the fixes and the new tests ! >>> >>> Currently, patch 1/3 breaks two Metalink tests: >>> >>> FAIL: Test-metalink-http.py >>> FAIL: Test-metalink-http-quoted.py >>> >>> I am still investigating, but it has something to do with the >>> environment that you reset in testenv/test/base_test.py: >>> >>> ret_code = call(params, env={"HOME": os.getcwd()}) >>> >>> Maybe a bug that just comes out with a different locale/charset encoding. >>> >>> >>> With Best Regards, Tim >>> >>> >>> >>> On 05/12/2017 07:17 PM, Tomas Hozza wrote: >>>> Getting credentials from .netrc has been broken from time to time, thus >>>> adding a test coverage to prevent regressions. >>>> >>>> Also added setting of "HOME" environment variable when executing wget, >>>> to make sure LocalFiles like .netrc, which are created just for the >>>> test, are actually used. >>>> >>>> Signed-off-by: Tomas Hozza <tho...@redhat.com> >>>> --- >>>> testenv/Makefile.am | 3 ++ >>>> testenv/Test-auth-basic-netrc-pass-given.py | 68 >>>> +++++++++++++++++++++++++++++ >>>> testenv/Test-auth-basic-netrc-user-given.py | 68 >>>> +++++++++++++++++++++++++++++ >>>> testenv/Test-auth-basic-netrc.py | 66 >>>> ++++++++++++++++++++++++++++ >>>> testenv/test/base_test.py | 2 +- >>>> 5 files changed, 206 insertions(+), 1 deletion(-) >>>> create mode 100755 testenv/Test-auth-basic-netrc-pass-given.py >>>> create mode 100755 testenv/Test-auth-basic-netrc-user-given.py >>>> create mode 100755 testenv/Test-auth-basic-netrc.py >>>> >>>> diff --git a/testenv/Makefile.am b/testenv/Makefile.am >>>> index 3febec7..7104314 100644 >>>> --- a/testenv/Makefile.am >>>> +++ b/testenv/Makefile.am >>>> @@ -75,6 +75,9 @@ if HAVE_PYTHON3 >>>> TESTS = Test-504.py \ >>>> Test-auth-basic-fail.py \ >>>> Test-auth-basic.py \ >>>> + Test-auth-basic-netrc.py \ >>>> + Test-auth-basic-netrc-user-given.py \ >>>> + Test-auth-basic-netrc-pass-given.py \ >>>> Test-auth-both.py \ >>>> Test-auth-digest.py \ >>>> Test-auth-no-challenge.py \ >>>> diff --git a/testenv/Test-auth-basic-netrc-pass-given.py >>>> b/testenv/Test-auth-basic-netrc-pass-given.py >>>> new file mode 100755 >>>> index 0000000..43dfe34 >>>> --- /dev/null >>>> +++ b/testenv/Test-auth-basic-netrc-pass-given.py >>>> @@ -0,0 +1,68 @@ >>>> +#!/usr/bin/env python3 >>>> +from sys import exit >>>> +from test.http_test import HTTPTest >>>> +from misc.wget_file import WgetFile >>>> + >>>> +""" >>>> + This test ensures Wget uses credentials from .netrc for Basic >>>> Authorization Negotiation. >>>> + In this case we test that .netrc credentials are used in case only >>>> + password is given on the command line. >>>> + Also, we ensure that Wget saves the host after a successful auth and >>>> + doesn't wait for a challenge the second time. >>>> +""" >>>> +############# File Definitions >>>> ############################################### >>>> +File1 = "I am an invisble man." >>>> +File2 = "I too am an invisible man." >>>> + >>>> +User = "Sauron" >>>> +Password = "TheEye" >>>> + >>>> +File1_rules = { >>>> + "Authentication" : { >>>> + "Type" : "Basic", >>>> + "User" : User, >>>> + "Pass" : Password >>>> + } >>>> +} >>>> +File2_rules = { >>>> + "ExpectHeader" : { >>>> + "Authorization" : "Basic U2F1cm9uOlRoZUV5ZQ==" >>>> + } >>>> +} >>>> + >>>> +Netrc = "machine 127.0.0.1\n\tlogin {0}".format(User) >>>> + >>>> +A_File = WgetFile ("File1", File1, rules=File1_rules) >>>> +B_File = WgetFile ("File2", File2, rules=File2_rules) >>>> +Netrc_File = WgetFile (".netrc", Netrc) >>>> + >>>> +WGET_OPTIONS = "--password={0}".format(Password) >>>> +WGET_URLS = [["File1", "File2"]] >>>> + >>>> +Files = [[A_File, B_File]] >>>> +LocalFiles = [Netrc_File] >>>> + >>>> +ExpectedReturnCode = 0 >>>> +ExpectedDownloadedFiles = [A_File, B_File, Netrc_File] >>>> + >>>> +################ Pre and Post Test Hooks >>>> ##################################### >>>> +pre_test = { >>>> + "ServerFiles" : Files, >>>> + "LocalFiles" : LocalFiles >>>> +} >>>> +test_options = { >>>> + "WgetCommands" : WGET_OPTIONS, >>>> + "Urls" : WGET_URLS >>>> +} >>>> +post_test = { >>>> + "ExpectedFiles" : ExpectedDownloadedFiles, >>>> + "ExpectedRetcode" : ExpectedReturnCode >>>> +} >>>> + >>>> +err = HTTPTest ( >>>> + pre_hook=pre_test, >>>> + test_params=test_options, >>>> + post_hook=post_test >>>> +).begin () >>>> + >>>> +exit (err) >>>> diff --git a/testenv/Test-auth-basic-netrc-user-given.py >>>> b/testenv/Test-auth-basic-netrc-user-given.py >>>> new file mode 100755 >>>> index 0000000..57b6148 >>>> --- /dev/null >>>> +++ b/testenv/Test-auth-basic-netrc-user-given.py >>>> @@ -0,0 +1,68 @@ >>>> +#!/usr/bin/env python3 >>>> +from sys import exit >>>> +from test.http_test import HTTPTest >>>> +from misc.wget_file import WgetFile >>>> + >>>> +""" >>>> + This test ensures Wget uses credentials from .netrc for Basic >>>> Authorization Negotiation. >>>> + In this case we test that .netrc credentials are used in case only >>>> + user login is given on the command line. >>>> + Also, we ensure that Wget saves the host after a successful auth and >>>> + doesn't wait for a challenge the second time. >>>> +""" >>>> +############# File Definitions >>>> ############################################### >>>> +File1 = "I am an invisble man." >>>> +File2 = "I too am an invisible man." >>>> + >>>> +User = "Sauron" >>>> +Password = "TheEye" >>>> + >>>> +File1_rules = { >>>> + "Authentication" : { >>>> + "Type" : "Basic", >>>> + "User" : User, >>>> + "Pass" : Password >>>> + } >>>> +} >>>> +File2_rules = { >>>> + "ExpectHeader" : { >>>> + "Authorization" : "Basic U2F1cm9uOlRoZUV5ZQ==" >>>> + } >>>> +} >>>> + >>>> +Netrc = "machine 127.0.0.1\n\tlogin {0}\n\tpassword {1}".format(User, >>>> Password) >>>> + >>>> +A_File = WgetFile ("File1", File1, rules=File1_rules) >>>> +B_File = WgetFile ("File2", File2, rules=File2_rules) >>>> +Netrc_File = WgetFile (".netrc", Netrc) >>>> + >>>> +WGET_OPTIONS = "--user={0}".format(User) >>>> +WGET_URLS = [["File1", "File2"]] >>>> + >>>> +Files = [[A_File, B_File]] >>>> +LocalFiles = [Netrc_File] >>>> + >>>> +ExpectedReturnCode = 0 >>>> +ExpectedDownloadedFiles = [A_File, B_File, Netrc_File] >>>> + >>>> +################ Pre and Post Test Hooks >>>> ##################################### >>>> +pre_test = { >>>> + "ServerFiles" : Files, >>>> + "LocalFiles" : LocalFiles >>>> +} >>>> +test_options = { >>>> + "WgetCommands" : WGET_OPTIONS, >>>> + "Urls" : WGET_URLS >>>> +} >>>> +post_test = { >>>> + "ExpectedFiles" : ExpectedDownloadedFiles, >>>> + "ExpectedRetcode" : ExpectedReturnCode >>>> +} >>>> + >>>> +err = HTTPTest ( >>>> + pre_hook=pre_test, >>>> + test_params=test_options, >>>> + post_hook=post_test >>>> +).begin () >>>> + >>>> +exit (err) >>>> diff --git a/testenv/Test-auth-basic-netrc.py >>>> b/testenv/Test-auth-basic-netrc.py >>>> new file mode 100755 >>>> index 0000000..5710fe7 >>>> --- /dev/null >>>> +++ b/testenv/Test-auth-basic-netrc.py >>>> @@ -0,0 +1,66 @@ >>>> +#!/usr/bin/env python3 >>>> +from sys import exit >>>> +from test.http_test import HTTPTest >>>> +from misc.wget_file import WgetFile >>>> + >>>> +""" >>>> + This test ensures Wget uses credentials from .netrc for Basic >>>> Authorization Negotiation. >>>> + In this case we test that .netrc credentials are used in case no user >>>> + login and no password is given on the command line. >>>> + Also, we ensure that Wget saves the host after a successful auth and >>>> + doesn't wait for a challenge the second time. >>>> +""" >>>> +############# File Definitions >>>> ############################################### >>>> +File1 = "I am an invisble man." >>>> +File2 = "I too am an invisible man." >>>> + >>>> +User = "Sauron" >>>> +Password = "TheEye" >>>> + >>>> +File1_rules = { >>>> + "Authentication" : { >>>> + "Type" : "Basic", >>>> + "User" : User, >>>> + "Pass" : Password >>>> + } >>>> +} >>>> +File2_rules = { >>>> + "ExpectHeader" : { >>>> + "Authorization" : "Basic U2F1cm9uOlRoZUV5ZQ==" >>>> + } >>>> +} >>>> + >>>> +Netrc = "machine 127.0.0.1\n\tlogin {0}\n\tpassword {1}".format(User, >>>> Password) >>>> + >>>> +A_File = WgetFile ("File1", File1, rules=File1_rules) >>>> +B_File = WgetFile ("File2", File2, rules=File2_rules) >>>> +Netrc_File = WgetFile (".netrc", Netrc) >>>> + >>>> +WGET_URLS = [["File1", "File2"]] >>>> + >>>> +Files = [[A_File, B_File]] >>>> +LocalFiles = [Netrc_File] >>>> + >>>> +ExpectedReturnCode = 0 >>>> +ExpectedDownloadedFiles = [A_File, B_File, Netrc_File] >>>> + >>>> +################ Pre and Post Test Hooks >>>> ##################################### >>>> +pre_test = { >>>> + "ServerFiles" : Files, >>>> + "LocalFiles" : LocalFiles >>>> +} >>>> +test_options = { >>>> + "Urls" : WGET_URLS >>>> +} >>>> +post_test = { >>>> + "ExpectedFiles" : ExpectedDownloadedFiles, >>>> + "ExpectedRetcode" : ExpectedReturnCode >>>> +} >>>> + >>>> +err = HTTPTest ( >>>> + pre_hook=pre_test, >>>> + test_params=test_options, >>>> + post_hook=post_test >>>> +).begin () >>>> + >>>> +exit (err) >>>> diff --git a/testenv/test/base_test.py b/testenv/test/base_test.py >>>> index b0087e9..bb706d8 100644 >>>> --- a/testenv/test/base_test.py >>>> +++ b/testenv/test/base_test.py >>>> @@ -102,7 +102,7 @@ class BaseTest: >>>> time.sleep(float(os.getenv("SERVER_WAIT"))) >>>> >>>> try: >>>> - ret_code = call(params) >>>> + ret_code = call(params, env={"HOME": os.getcwd()}) >>>> except FileNotFoundError: >>>> raise TestFailed("The Wget Executable does not exist at the " >>>> "expected path.") >>>> >>> >> >> >> > -- Tomas Hozza Associate Manager, Software Engineering - EMEA ENG Mainstream RHEL PGP: 1D9F3C2D UTC+2 (CEST) Red Hat Inc. http://cz.redhat.com