1#!/usr/bin/env python3 2from sys import exit 3from test.http_test import HTTPTest 4from misc.wget_file import WgetFile 5 6""" 7 This test ensures Wget's Basic Authorization Negotiation. 8 Also, we ensure that Wget saves the host after a successfull auth and 9 doesn't wait for a challenge the second time. 10""" 11TEST_NAME = "Multiple authentication support" 12############# File Definitions ############################################### 13File1 = "Would you like some Tea?" 14File2 = "With lemon or cream?" 15File3 = "Sure you're joking Mr. Feynman" 16 17File1_rules = { 18 "Authentication" : { 19 "Type" : "Both", 20 "User" : "Sauron", 21 "Pass" : "TheEye" 22 }, 23 "RejectHeader" : { 24 "Authorization" : "Basic U2F1cm9uOlRoZUV5ZQ==" 25 } 26} 27File2_rules = { 28 "Authentication" : { 29 "Type" : "Both_inline", 30 "User" : "Sauron", 31 "Pass" : "TheEye" 32 }, 33 "RejectHeader" : { 34 "Authorization" : "Basic U2F1cm9uOlRoZUV5ZQ==" 35 } 36} 37File3_rules = { 38 "Authentication" : { 39 "Type" : "Digest", 40 "User" : "Sauron", 41 "Pass" : "TheEye" 42 } 43} 44 45A_File = WgetFile ("File1", File1, rules=File1_rules) 46B_File = WgetFile ("File2", File2, rules=File2_rules) 47C_File = WgetFile ("File3", File3, rules=File3_rules) 48 49WGET_OPTIONS = "--user=Sauron --password=TheEye" 50WGET_URLS = [["File1", "File2", "File3"]] 51 52Files = [[A_File, B_File, C_File]] 53 54ExpectedReturnCode = 0 55ExpectedDownloadedFiles = [A_File, B_File, C_File] 56 57################ Pre and Post Test Hooks ##################################### 58pre_test = { 59 "ServerFiles" : Files 60} 61test_options = { 62 "WgetCommands" : WGET_OPTIONS, 63 "Urls" : WGET_URLS 64} 65post_test = { 66 "ExpectedFiles" : ExpectedDownloadedFiles, 67 "ExpectedRetcode" : ExpectedReturnCode 68} 69 70err = HTTPTest ( 71 name=TEST_NAME, 72 pre_hook=pre_test, 73 test_params=test_options, 74 post_hook=post_test 75).begin () 76 77exit (err) 78