Diff of the two buildlogs: -- --- b1/build.log 2025-03-22 05:12:40.216686815 +0000 +++ b2/build.log 2025-03-22 05:15:06.298112786 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Mar 21 17:10:42 -12 2025 -I: pbuilder-time-stamp: 1742620242 +I: Current time: Sat Apr 25 01:35:41 +14 2026 +I: pbuilder-time-stamp: 1777030541 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -26,52 +26,84 @@ dpkg-source: info: applying skip-test-failing-in-ubuntu.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/4163237/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/763299/tmp/hooks/D01_modify_environment starting +debug: Running on ionos5-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Apr 24 11:36 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/763299/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/763299/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='bb37e2fcb2c0443fa58b54f8fb49d8be' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='4163237' - PS1='# ' - PS2='> ' + INVOCATION_ID=183d4eac1b614730ba2fcdecfa2b7f68 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=763299 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.ZP297c06/pbuilderrc_iYRI --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.ZP297c06/b1 --logfile b1/build.log ruby-faraday_2.12.2-1.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.ZP297c06/pbuilderrc_SmEb --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.ZP297c06/b2 --logfile b2/build.log ruby-faraday_2.12.2-1.dsc' + SUDO_GID=110 + SUDO_UID=105 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos11-amd64 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.12-1~bpo12+1 (2025-02-23) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Mar 4 11:20 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/4163237/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Mar 4 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/763299/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -322,7 +354,7 @@ Get: 185 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 186 http://deb.debian.org/debian trixie/main amd64 ruby-ruby2-keywords all 0.0.5-1 [4300 B] Get: 187 http://deb.debian.org/debian trixie/main amd64 ruby-webmock all 3.25.1-1 [68.8 kB] -Fetched 52.4 MB in 2s (25.9 MB/s) +Fetched 52.4 MB in 1s (55.2 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19785 files and directories currently installed.) @@ -940,8 +972,8 @@ Setting up tzdata (2025a-2) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Mar 22 05:12:06 UTC 2025. -Universal Time is now: Sat Mar 22 05:12:06 UTC 2025. +Local time is now: Fri Apr 24 11:37:16 UTC 2026. +Universal Time is now: Fri Apr 24 11:37:16 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-2) ... @@ -1107,7 +1139,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-faraday-2.12.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-faraday_2.12.2-1_source.changes +I: user script /srv/workspace/pbuilder/763299/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/763299/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-faraday-2.12.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-faraday_2.12.2-1_source.changes dpkg-buildpackage: info: source package ruby-faraday dpkg-buildpackage: info: source version 2.12.2-1 dpkg-buildpackage: info: source distribution unstable @@ -1141,7 +1177,7 @@ │ ruby-faraday: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250321-4186628-bjqnsp/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20260425-896437-mimj0j/gemspec WARNING: open-ended dependency on json (>= 0) is not recommended use a bounded requirement, such as "~> x.y" WARNING: open-ended dependency on logger (>= 0) is not recommended @@ -1151,7 +1187,7 @@ Name: faraday Version: 2.12.2 File: faraday-2.12.2.gem -/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-faraday/usr/share/rubygems-integration/all /tmp/d20250321-4186628-bjqnsp/faraday-2.12.2.gem +/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-faraday/usr/share/rubygems-integration/all /tmp/d20260425-896437-mimj0j/faraday-2.12.2.gem /build/reproducible-path/ruby-faraday-2.12.2/debian/ruby-faraday/usr/share/rubygems-integration/all/gems/faraday-2.12.2/lib/faraday.rb /build/reproducible-path/ruby-faraday-2.12.2/debian/ruby-faraday/usr/share/rubygems-integration/all/gems/faraday-2.12.2/lib/faraday/adapter.rb /build/reproducible-path/ruby-faraday-2.12.2/debian/ruby-faraday/usr/share/rubygems-integration/all/gems/faraday-2.12.2/lib/faraday/adapter/test.rb @@ -1225,288 +1261,528 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-faraday-2.12.2/debian/ruby-faraday/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-faraday-2.12.2/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.3 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec ./spec/faraday/adapter/test_spec.rb ./spec/faraday/adapter_registry_spec.rb ./spec/faraday/adapter_spec.rb ./spec/faraday/connection_spec.rb ./spec/faraday/error_spec.rb ./spec/faraday/middleware_registry_spec.rb ./spec/faraday/middleware_spec.rb ./spec/faraday/options/env_spec.rb ./spec/faraday/options/options_spec.rb ./spec/faraday/options/proxy_options_spec.rb ./spec/faraday/options/request_options_spec.rb ./spec/faraday/params_encoders/flat_spec.rb ./spec/faraday/params_encoders/nested_spec.rb ./spec/faraday/rack_builder_spec.rb ./spec/faraday/request/authorization_spec.rb ./spec/faraday/request/instrumentation_spec.rb ./spec/faraday/request/json_spec.rb ./spec/faraday/request/url_encoded_spec.rb ./spec/faraday/request_spec.rb ./spec/faraday/response/json_spec.rb ./spec/faraday/response/logger_spec.rb ./spec/faraday/response/raise_error_spec.rb ./spec/faraday/response_spec.rb ./spec/faraday/utils/headers_spec.rb ./spec/faraday/utils_spec.rb ./spec/faraday_spec.rb --format documentation -Randomized with seed 3890 +Randomized with seed 24500 -Faraday::RackBuilder - with default stack - is expected to eq Faraday::Request::UrlEncoded - is expected to eq Faraday::Adapter::Test - when middleware is added with named arguments - adds a handler to construct middleware with options passed to use - when a middleware is added with named arguments - adds a handler to construct response adapter with options passed to response - when a plain adapter is added with named arguments - adds a handler to construct adapter with options passed to adapter - when having two handlers - allows to delete a handler - allows to swap handlers - allows insert_before - allows insert_after - when adapter is added with named options - adds a handler to construct adapter with named options - when handlers are directly added or updated - adds a handler with options passed to insert_after - adds a handler to construct adapter with options passed to insert - adds a handler with options passed to swap - with custom empty block - is expected to eq Faraday::Adapter::Test - is expected to be nil - with custom handler and adapter - locks the stack after making a request - dup stack is unlocked - allows to compare handlers - with custom adapter only - is expected to eq Faraday::Adapter::Test - is expected to be nil - when having a single handler - allows insert_before - allows use - allows insert_after - raises an error trying to use an unregistered symbol - is expected to eq [Apple] - when a middleware is added with named arguments - adds a handler to construct request adapter with options passed to request +Faraday::NestedParamsEncoder + encodes boolean values + decodes nested array mixed types + decodes hashes + encodes rack compat + decodes arrays + decodes nested subkeys dont have to be in brackets + encodes boolean values in array + encodes empty string array value + decodes nested final value overrides any type + decodes nested ignores malformed keys + encodes unsorted when asked + encodes nil array value + encodes arrays indices when asked + decodes nested arrays rack compat + decodes nested ignores invalid array + decodes nested ignores repeated array notation + encodes empty array value + behaves like a params encoder + raises type error for empty string + encodes nil + escapes safe buffer + when expecting hash but getting array + behaves like a wrong decoding + is expected to raise TypeError + when expecting array but getting string + behaves like a wrong decoding + is expected to raise TypeError + when expecting nested hash but getting non nested + behaves like a wrong decoding + is expected to raise TypeError + when expecting hash but getting string + behaves like a wrong decoding + is expected to raise TypeError + when expecting array but getting hash + behaves like a wrong decoding + is expected to raise TypeError -Faraday::Request::UrlEncoded - does nothing without payload - works with nested params - works with non nested params - works with nested keys - works with files - works with unicode - works with with headers - ignores custom content type - works with no headers - customising default_space_encoding - uses the custom character to encode spaces +Faraday::Adapter + #request_timeout + gets :read timeout + gets :open timeout + gets :write timeout + attempts unknown timeout type + +Faraday::AdapterRegistry + #initialize + caches lookups with implicit name + is expected to raise NameError + caches lookups with explicit name + looks up class by string name + is expected to raise NameError + looks up class by symbol name + +Faraday::MiddlewareRegistry + allows to register with symbol + allows to register with constant + allows to register with string + allows to register with Proc + +Faraday::Utils + .deep_merge! + recursively merges the headers + when a target hash has an Options Struct value + does not overwrite an Options Struct value + headers parsing + parse headers for aggregated responses + URI parsing + replaces headers hash + parses with block + parses with default parser + parses with URI + escapes safe buffer Faraday::Utils::Headers - when Content-Type is set to application/xml - is expected to eq ["Content-Type"] - is expected to eq "application/xml" - is expected to eq "application/xml" - is expected to include "content-type" - is expected to eq "application/xml" - #delete + #fetch is expected to be nil - is expected to eq 0 + is expected to eq "default" is expected to eq "application/json" - is expected not to include "content-type" - #fetch is expected to eq false is expected to eq "Invalid key" - is expected to be nil - is expected to eq "default" is expected to eq "application/json" - raises an error if key not found is expected to eq "application/json" + raises an error if key not found calls a block when provided - is expected to eq "application/json" #parse + when response headers values include a colon + is expected to eq "http://httpbingo.org/" when response headers leave http status line out is expected to eq ["Content-Type"] is expected to eq "text/html" is expected to eq "text/html" when response headers include already stored keys is expected to eq "8, 123" - when response headers values include a colon - is expected to eq "http://httpbingo.org/" when response headers include a blank line is expected to eq "text/html" - when Content-Type is set to application/json + #dig is expected to eq "application/json" + is expected to be nil is expected to eq "application/json" is expected to eq "application/json" - is expected to include "content-type" + when Content-Type is set to application/xml + is expected to eq "application/xml" is expected to eq ["Content-Type"] - #dig + is expected to eq "application/xml" + is expected to include "content-type" + is expected to eq "application/xml" + #delete is expected to eq "application/json" + is expected not to include "content-type" + is expected to eq 0 is expected to be nil + when Content-Type is set to application/json + is expected to eq "application/json" is expected to eq "application/json" + is expected to include "content-type" + is expected to eq ["Content-Type"] is expected to eq "application/json" +Faraday::Env + allows to access symbol non members + retains custom members + ignores false when fetching + allows to access members + handle verify_hostname when fetching + allows to access string non members + #body + when response is not finished yet + returns the request body + when response is finished + allows to access request_body + allows to access response_body + returns the response body + +Faraday::Request::Authorization + authorization + when passed a callable + is expected to eq "Bearer custom_from_callable" + and request already has an authentication header + does not interfere with existing authorization + when passed a proc + is expected to eq "Bearer custom_from_proc" + and request already has an authentication header + does not interfere with existing authorization + when passed too many arguments + is expected to raise ArgumentError + and request already has an authentication header + does not interfere with existing authorization + with an argument + when passed a lambda + is expected to eq "Bearer lambda crunchy surprise" + and request already has an authentication header + does not interfere with existing authorization + when passed a callable with an argument + is expected to eq "Bearer callable crunchy surprise" + and request already has an authentication header + does not interfere with existing authorization + when passed a proc + is expected to eq "Bearer proc crunchy surprise" + and request already has an authentication header + does not interfere with existing authorization + when passed a string + is expected to eq "Bearer custom" + and request already has an authentication header + does not interfere with existing authorization + basic_auth + when passed correct params + is expected to eq "Basic YWxhZGRpbjpvcGVuc2VzYW1l" + and request already has an authentication header + does not interfere with existing authorization + when passed very long values + is expected to eq "Basic QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU...UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOg==" + and request already has an authentication header + does not interfere with existing authorization + +Faraday::Request::UrlEncoded + ignores custom content type + works with files + works with no headers + works with unicode + does nothing without payload + works with with headers + works with non nested params + works with nested params + works with nested keys + customising default_space_encoding + uses the custom character to encode spaces + Faraday::Connection - proxy support - uses env https_proxy - fetches no proxy from blank env - does not accept uppercase env - allows when url in no proxy list with url_prefix - uses processes no_proxy before https_proxy - accepts http env - allows when url not in no proxy list - uses processes no_proxy before http_proxy - accepts hash - allows in multi element no proxy list - accepts hash with string uri - allows when url in no proxy list - allows when ip address is not in no proxy list but url is - accepts uri - accepts env without scheme - allows when prefixed url is not in no proxy list - uses env http_proxy - accepts string - gives priority to manually set proxy - fetches no proxy from nil env - test proxy requires uri - allows when url is not in no proxy list but ip address is - allows when subdomain url is in no proxy list - accepts http env with auth - ignores env proxy if set that way - performing a request - dynamically check no proxy - dynamically checks proxy #dup - is expected to eq "1" - is expected to eq # is expected to eq "text/plain" + is expected to eq # + is expected to eq "1" after manual changes - is expected to be nil is expected to eq 1 - is expected to eq 5 - is expected to be falsey is expected to eq 1 is expected to be falsey - #build_exclusive_url - allows to provide params argument - does not use connection params - overrides connection port for absolute url - does not add ending slash given nil url - does not add ending slash given empty url - always returns new URI instance - handles uri instances - with url_prefixed connection - joins url to base with ending slash - parses url and changes scheme - overrides base - used default base with ending slash - with absolute path - example at ./spec/faraday/connection_spec.rb:208 - is expected to eq "/sake.html" - is expected to eq "/sake.html" - is expected to eq "/sake.html" - with a custom `default_uri_parser` - does not raise error - with relative path - is expected to eq "/fish/sake.html" - is expected to eq "/fish/sake.html" - is expected to eq "/fish/sake.html" - is expected to eq "/sake.html" - uses connection host as default host - with colon in path - joins url to base when used absolute path - joins url to base when used with path prefix - joins url to base when used relative path - with complete url - is expected to eq "http" - is expected to eq 80 - is expected to eq "a=1" - is expected to eq "/sake.html" - is expected to eq "httpbingo.org" + is expected to eq 5 + is expected to be nil + is expected to be falsey + #to_env + parses url params into query + escapes per spec + without braketizing repeated params in query + bracketizes repeated params in query + bracketizes nested params in query + #respond_to? + is expected to be truthy + is expected to be truthy + #close + can close underlying app #build_url - uses params merges params + uses params + request params + with flat params encoder + supports array params in params + with array param in url + example at ./spec/faraday/connection_spec.rb:802 + with default params encoder + supports array params in url + supports array params in params + with url and extra params + merges connection and request params + allows to override all params + allows to set params_encoder for single request + with simple url + test_overrides_request_params_block_url + test_overrides_request_params_block + test_overrides_request_params .new - with custom params - is expected to eq {"a"=>1} + with verify_hostname false + is expected to be falsey with block is expected to eq 0 is expected to eq "/omnom" + with custom params + is expected to eq {"a"=>1} with implicit url param behaves like initializer with url with simple url - is expected to eq 80 + is expected to eq {} is expected to eq "http" - is expected to eq "httpbingo.org" + is expected to eq 80 is expected to eq "/" - is expected to eq {} + is expected to eq "httpbingo.org" + with IPv6 address + is expected to eq 85 + is expected to eq "[::1]" with complex url is expected to eq "/fish" is expected to eq {"a"=>"1"} is expected to eq 815 - with IPv6 address - is expected to eq 85 - is expected to eq "[::1]" - with custom builder - is expected to eq # - with custom params and params in url - is expected to eq {"a"=>3, "b"=>"2"} with ssl false is expected to be falsey - with custom headers - is expected to eq "Faraday" - with verify_hostname false - is expected to be falsey with basic_auth in url is expected to eq "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" + with custom headers + is expected to eq "Faraday" + with custom builder + is expected to eq # with explicit url param behaves like initializer with url with complex url - is expected to eq 815 is expected to eq {"a"=>"1"} + is expected to eq 815 is expected to eq "/fish" - with IPv6 address - is expected to eq 85 - is expected to eq "[::1]" with simple url is expected to eq 80 - is expected to eq {} is expected to eq "http" - is expected to eq "httpbingo.org" is expected to eq "/" + is expected to eq {} + is expected to eq "httpbingo.org" + with IPv6 address + is expected to eq 85 + is expected to eq "[::1]" + with custom params and params in url + is expected to eq {"a"=>3, "b"=>"2"} with empty block is expected to eq 0 #build_request - is expected to be truthy + is expected to be falsey is expected to be empty + is expected to be truthy is expected to eq ["Authorization"] - is expected to be falsey - #close - can close underlying app default_connection_options + preserving a user_agent assigned via default_conncetion_options + when url is a String + is expected to eq {"CustomHeader"=>"CustomValue", "User-Agent"=>"My Agent 1.2"} + when url is a Hash + is expected to eq {"CustomHeader"=>"CustomValue", "User-Agent"=>"My Agent 1.2"} assigning a hash behaves like default connection options works with option url - default connection uses default connection options + works with implicit url works with instance connection options default connection options persist with an instance overriding - works with implicit url + default connection uses default connection options assigning a default value behaves like default connection options - works with instance connection options default connection options persist with an instance overriding default connection uses default connection options works with implicit url works with option url - preserving a user_agent assigned via default_conncetion_options - when url is a Hash - is expected to eq {"CustomHeader"=>"CustomValue", "User-Agent"=>"My Agent 1.2"} - when url is a String - is expected to eq {"CustomHeader"=>"CustomValue", "User-Agent"=>"My Agent 1.2"} - #respond_to? - is expected to be truthy - is expected to be truthy - request params - with default params encoder - supports array params in url - supports array params in params - with flat params encoder - supports array params in params - with array param in url - example at ./spec/faraday/connection_spec.rb:802 - with simple url - test_overrides_request_params - test_overrides_request_params_block - test_overrides_request_params_block_url - with url and extra params - allows to override all params - merges connection and request params - allows to set params_encoder for single request - #to_env - escapes per spec - parses url params into query - bracketizes repeated params in query - without braketizing repeated params in query - bracketizes nested params in query + works with instance connection options + proxy support + accepts string + allows when url in no proxy list + uses env http_proxy + accepts uri + accepts http env + uses processes no_proxy before http_proxy + allows when prefixed url is not in no proxy list + allows when url not in no proxy list + accepts hash + allows when subdomain url is in no proxy list + allows in multi element no proxy list + accepts http env with auth + accepts hash with string uri + gives priority to manually set proxy + uses env https_proxy + fetches no proxy from blank env + does not accept uppercase env + accepts env without scheme + test proxy requires uri + allows when ip address is not in no proxy list but url is + allows when url is not in no proxy list but ip address is + allows when url in no proxy list with url_prefix + fetches no proxy from nil env + uses processes no_proxy before https_proxy + ignores env proxy if set that way + performing a request + dynamically checks proxy + dynamically check no proxy + #build_exclusive_url + handles uri instances + allows to provide params argument + overrides connection port for absolute url + always returns new URI instance + does not add ending slash given empty url + does not add ending slash given nil url + does not use connection params + with a custom `default_uri_parser` + does not raise error + with complete url + is expected to eq 80 + is expected to eq "/sake.html" + is expected to eq "a=1" + is expected to eq "httpbingo.org" + is expected to eq "http" + with url_prefixed connection + parses url and changes scheme + joins url to base with ending slash + used default base with ending slash + overrides base + with relative path + uses connection host as default host + is expected to eq "/fish/sake.html" + is expected to eq "/sake.html" + is expected to eq "/fish/sake.html" + is expected to eq "/fish/sake.html" + with colon in path + joins url to base when used with path prefix + joins url to base when used relative path + joins url to base when used absolute path + with absolute path + example at ./spec/faraday/connection_spec.rb:206 + is expected to eq "/sake.html" + is expected to eq "/sake.html" + is expected to eq "/sake.html" + +Faraday::Response + is expected to eq "yikes" + is expected to be truthy + is expected to be falsey + is expected to eq "text/plain" + is expected to raise RuntimeError + is expected to eq "text/plain" + is expected to eq 404 + #to_hash + is expected to eq "yikes" + is expected to be a kind of Hash + is expected to eq 404 + is expected to eq # + is expected to eq {"Content-Type"=>"text/plain"} + marshal serialization support + is expected to eq "yikes" + is expected to be nil + is expected to eq # + is expected to eq {"Content-Type"=>"text/plain"} + is expected to eq 404 + #apply_request + is expected to eq :post + is expected to eq "yikes" + #on_complete + can access response body in on_complete callback + can access response body in on_complete callback + parse body on finish + +Faraday::ProxyOptions + allows hash access + #from + works with no auth + works with nil + treats empty string as nil + defaults to http + works with string + +Faraday::FlatParamsEncoder + encodes boolean values in array + encodes unsorted when asked + encodes empty array in hash + encodes boolean values + decodes arrays + decodes boolean values + behaves like a params encoder + raises type error for empty string + escapes safe buffer + encodes nil + +Faraday::Response::RaiseError + raises no exception for 200 responses + raises Faraday::RequestTimeoutError for 408 responses + raises Faraday::UnprocessableEntityError for 422 responses + raises Faraday::ProxyAuthError for 407 responses + raises Faraday::ServerError for 500 responses + raises Faraday::NilStatusError for nil status in response + raises Faraday::ClientError for other 4xx responses + raises Faraday::BadRequestError for 400 responses + raises Faraday::UnauthorizedError for 401 responses + raises Faraday::TooManyRequestsError for 429 responses + raises Faraday::ForbiddenError for 403 responses + raises Faraday::ResourceNotFound for 404 responses + raises Faraday::ConflictError for 409 responses + request info + returns the request info in the exception + DEFAULT_OPTION: include_request + when RaiseError DEFAULT_OPTION (include_request: true) is used + includes request info in the exception + when application sets default_options `include_request: false` + and when include_request option is explicitly set for instance + includes request info in the exception + and when include_request option is omitted + does not include request info in the exception + allowing certain status codes + does not raise an error for allowed status codes + raises an error for status codes that are not explicitly allowed + +Faraday::Response::Json + includes the response on the ParsingError instance + chokes on invalid json + with preserving raw + parses json body + JSON options + passes relevant options to JSON parse + with array type matching + ignores json body of incorrect type + parses json body of correct type + with decoder + when decoder is passed as object + passes relevant options to specified decoder's load method + when decoder is passed as an object-method pair + passes relevant options to specified decoder's method + when decoder is not passed + passes relevant options to JSON parse even when nil responds to :load + passes relevant options to JSON parse + no type matching + parses json body + doesn't change nil body + nullifies empty body + HEAD responses + nullifies the body if it's two spaces + nullifies the body if it's only one space + with default regexp type matching + ignores json body of incorrect type + parses json body of correct type + +Faraday::Request::Json + false body + encodes body + adds content type + empty object body + encodes body + object body with vendor json type + doesn't change content type + encodes body + no body + doesn't change body + doesn't add content type + with encoder + when encoder is not passed + calls JSON.generate + encodes body + adds content type + when encoder is passed as object + encodes body + calls specified JSON encoder's dump method + adds content type + when encoder is passed as an object-method pair + calls specified JSON encoder + encodes body + adds content type + empty body + doesn't add content type + doesn't change body + object body with incompatible type + doesn't change content type + doesn't change body + string body + doesn't change body + adds content type + object body + encodes body + adds content type + object body with json type + encodes body + doesn't change content type + true body + encodes body + adds content type Faraday::Options #merge @@ -1515,162 +1791,234 @@ deeply merges options with nil deeply merges two options deeply merges options with options having nil sub-options - #each_value - allows to iterate through values + #dup + duplicate options but not sub-options + #value? + returns true if any key has that value + #update + updates options from hashes #key? returns true if the key exists and is not nil - #each_key - allows to iterate through keys - #delete - allows to remove value for key #from - works with options - works with hash + works with options with sub object works with deep hash respects inheritance works with nil - works with options with sub object + works with hash + works with options is expected to raise NoMethodError works with hash with sub object - #memoized - requires block - accepts block - #clear - clears the options #deep_dup duplicate options and also suboptions + #delete + allows to remove value for key #empty? returns true only if all options are nil + #memoized + requires block + accepts block #fetch when the fetched key has no value - needs a default if key is missing uses falsey default + needs a default if key is missing accepts block when the fetched key has a value - works with key grabs value - #update - updates options from hashes - #value? - returns true if any key has that value - #dup - duplicate options but not sub-options + works with key + #each_key + allows to iterate through keys + #clear + clears the options + #each_value + allows to iterate through values + +Faraday::Request + supports marshal serialization + when HTTP method is post + is expected to eq :post + when setting the url on setup with a path including params + is expected to eq "foo.json" + is expected to eq {"a"=>"1", "b"=>"2"} + is expected to eq "http://httpbingo.org/api/foo.json?a=1&b=2" + when setting a header on setup with []= syntax + is expected to eq "1.0" + is expected to eq "Faraday" + is expected to eq "Faraday" + when nothing particular is configured + is expected to be falsey + is expected to eq :get + is expected to be falsey + when setting the url on setup with a string path and params + is expected to eq {"a"=>1} + is expected to eq "foo.json" + is expected to eq "http://httpbingo.org/api/foo.json?a=1" + when setting the body on setup + is expected to eq "hi" + is expected to eq "hi" + with global request options set + is expected to eq 3 + is expected to eq 5 + is expected to eq 5 + is expected to eq 3 + and per-request options set + is expected to eq {:consumer_key=>"anonymous", :consumer_secret=>"xyz"} + is expected to eq 10 + is expected to eq "boo" + is expected to eq 5 + is expected to eq 5 + is expected to eq {:bar=>"bar", :foo=>"foo"} + is expected to eq 10 + when setting the url on setup with a URI + is expected to eq # + is expected to eq "http://httpbingo.org/api/foo.json?a=1" + is expected to eq {"a"=>"1"} + +Faraday::Request::Instrumentation + instruments with default name + defaults to ActiveSupport::Notifications + is expected to eq "request.faraday" + with custom name + is expected to eq "custom" + instruments with custom name + with custom instrumenter + is expected to eq :custom + +Faraday::RequestOptions + allows to set the request proxy + +Faraday + has a version number + proxies to default_connection + proxied methods can be accessed + proxies methods that exist on the default_connection + uses method_missing on Faraday if there is no proxyable method + +Faraday::Error + .initialize + with exception and response object + is expected to eq # + is expected to eq {:test=>"test"} + is expected to eq #"application/json"} @status=400 @response_body={:test=>"test"}>, @on_complete_callbacks=[]> + is expected to eq "test" + is expected to eq nil + is expected to eq 400 + is expected to eq {"Content-Type"=>"application/json"} + with anything else #to_s + is expected to be nil + is expected to be nil + is expected to be nil + is expected to eq "#>" + is expected to be nil + is expected to be nil + is expected to eq "[\"error1\", \"error2\"]" + with exception string and response hash + is expected to eq {:status=>400} + is expected to eq "custom message" + is expected to be nil + is expected to eq 400 + is expected to be nil + is expected to be nil + is expected to eq "#400}>" + with exception only + is expected to be nil + is expected to be nil + is expected to eq "#>" + is expected to eq nil + is expected to be nil + is expected to eq # + is expected to be nil + is expected to eq "test" + with response hash + is expected to eq {:status=>400} + is expected to be nil + is expected to eq "the server responded with status 400" + is expected to eq "#400}>" + is expected to be nil + is expected to be nil + is expected to eq 400 + with string + is expected to eq "custom message" + is expected to be nil + is expected to be nil + is expected to be nil + is expected to be nil + is expected to eq "#>" + is expected to be nil Faraday::Adapter::Test - with http headers - without header - is expected to eq "b" - with header - is expected to eq "a" - ignoring unspecified get params - with multiple params - is expected to eq "a" - without params - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - with single param - is expected to eq "a" - different outcomes for the same request - the first request - is expected to eq "hello" - the second request - is expected to eq "world" - for request with non default params encoder - when all flat param values are correctly set - is expected to eq 200 - behaves like raise NotFound when params do not satisfy the flat param values - with {:b=>["x", "y", "z"]} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when params do not satisfy the flat param values - with {:a=>["x", "z", "y"]} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when params do not satisfy the flat param values - with {:a=>["x", "y"]} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when params do not satisfy the flat param values - with {:a=>["x"]} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - params parsing - with flat encoder - is expected to eq "a" - with default encoder - is expected to eq "a" - with nested encoder - is expected to eq "a" can handle regular expression path is expected to eq "show" - with simple path sets headers - is expected to eq "text/html" raising an error if no stub was found - for request without specified header + for request is expected to raise Faraday::Adapter::Test::Stubs::NotFound for specified host is expected to raise Faraday::Adapter::Test::Stubs::NotFound - for request + for request without specified header is expected to raise Faraday::Adapter::Test::Stubs::NotFound + with simple path sets body + is expected to eq "hello" can be called several times is expected to eq "hello" with simple path sets status is expected to eq 200 with host points to the right stub is expected to eq "domain: hello" - request timeout - when request is within timeout - is expected to eq 200 - when request is too slow - raises an exception - yielding env to stubs - is expected to eq "a" - can handle regular expression path with captured result - is expected to eq "show specified" - strict_mode - behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :"x-c"=>"Hi"} + for request with non default params encoder + behaves like raise NotFound when params do not satisfy the flat param values + with {:b=>["x", "y", "z"]} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :user_agent=>"Unknown"} + behaves like raise NotFound when params do not satisfy the flat param values + with {:a=>["x"]} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :"x-c"=>"hello", :x_special=>"special"} + behaves like raise NotFound when params do not satisfy the flat param values + with {:a=>["x", "z", "y"]} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck"} + behaves like raise NotFound when params do not satisfy the flat param values + with {:a=>["x", "y"]} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck"} + when all flat param values are correctly set + is expected to eq 200 + with simple path sets headers + is expected to eq "text/html" + can handle single parameter block + is expected to eq "get" + params parsing + with default encoder + is expected to eq "a" + with nested encoder + is expected to eq "a" + with flat encoder + is expected to eq "a" + strict_mode + when params and headers are exactly set with a custom user agent + is expected to eq 200 + behaves like raise NotFound when params do not satisfy the strict check + with {:a=>"12", :b=>"xyz"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound behaves like raise NotFound when headers do not satisfy the strict check with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent", :x_special=>"special"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when params do not satisfy the strict check - with {:a=>"12", :b=>"xyz"} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when params do not satisfy the strict check - with {:b=>"xy"} + behaves like raise NotFound when headers do not satisfy the strict check + with {:authorization=>"Bearer m_ck", :user_agent=>"Unknown"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound behaves like raise NotFound when params do not satisfy the strict check - with {:a=>"12", :b=>"xy", :c=>"hello"} + with {:additional=>"special", :a=>"12", :b=>"xy", :c=>"hello"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when params do not satisfy the strict check - with {:a=>"123", :b=>"xy"} + behaves like raise NotFound when headers do not satisfy the strict check + with {"X-C"=>"hello"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - when params and headers are exactly set - is expected to eq 200 body_match? + when trying without any args for body + is expected to eq 200 when trying with string body stubs is expected to eq 200 when trying with proc body stubs is expected to eq 200 - when trying without any args for body - is expected to eq 200 - behaves like raise NotFound when params do not satisfy the strict check - with {:additional=>"special", :a=>"12", :b=>"xy", :c=>"hello"} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when headers do not satisfy the strict check - with {"X-C"=>"hello"} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound + when params and headers are exactly set + is expected to eq 200 when strict_mode is disabled - behaves like does not raise NotFound even when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent", :x_special=>"special"} + behaves like does not raise NotFound even when params do not satisfy the strict check + with {:a=>"12", :b=>"xy"} is expected to eq 200 behaves like does not raise NotFound even when params do not satisfy the strict check with {:a=>"12", :b=>"xy", :c=>"hello"} @@ -1679,128 +2027,171 @@ with {:authorization=>"Bearer m_ck", :"x-c"=>"hello"} is expected to eq 200 behaves like does not raise NotFound even when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :"x-c"=>"hello", :user_agent=>"Special Agent"} + with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent", :x_special=>"special"} + is expected to eq 200 + behaves like does not raise NotFound even when params do not satisfy the strict check + with {:additional=>"special", :a=>"12", :b=>"xy", :c=>"hello"} is expected to eq 200 behaves like does not raise NotFound even when headers do not satisfy the strict check with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent"} is expected to eq 200 behaves like does not raise NotFound even when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :"x-c"=>"hello", :x_special=>"special"} - is expected to eq 200 - behaves like does not raise NotFound even when params do not satisfy the strict check - with {:additional=>"special", :a=>"12", :b=>"xy", :c=>"hello"} + with {:authorization=>"Bearer m_ck", :"x-c"=>"hello", :user_agent=>"Special Agent"} is expected to eq 200 - behaves like does not raise NotFound even when params do not satisfy the strict check - with {:a=>"12", :b=>"xy"} + behaves like does not raise NotFound even when headers do not satisfy the strict check + with {:authorization=>"Bearer m_ck", :"x-c"=>"hello", :x_special=>"special"} is expected to eq 200 + behaves like raise NotFound when params do not satisfy the strict check + with {:b=>"xy"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Basic m_ck", :"x-c"=>"hello"} + with {:authorization=>"Bearer m_ck", :"x-c"=>"Hi"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound behaves like raise NotFound when params do not satisfy the strict check with {:a=>"12"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - when params and headers are exactly set with a custom user agent + behaves like raise NotFound when headers do not satisfy the strict check + with {:authorization=>"Bearer m_ck", :"x-c"=>"hello", :x_special=>"special"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + behaves like raise NotFound when params do not satisfy the strict check + with {:a=>"123", :b=>"xy"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + behaves like raise NotFound when headers do not satisfy the strict check + with {:authorization=>"Bearer m_ck"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + behaves like raise NotFound when params do not satisfy the strict check + with {:a=>"12", :b=>"xy", :c=>"hello"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + behaves like raise NotFound when headers do not satisfy the strict check + with {:authorization=>"Basic m_ck", :"x-c"=>"hello"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + behaves like raise NotFound when headers do not satisfy the strict check + with {:authorization=>"Bearer m_ck"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + request timeout + when request is too slow + raises an exception + when request is within timeout is expected to eq 200 - can handle single parameter block - is expected to eq "get" + ignoring unspecified get params + with multiple params + is expected to eq "a" + without params + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + with single param + is expected to eq "a" + with http headers + without header + is expected to eq "b" + with header + is expected to eq "a" + can handle regular expression path with captured result + is expected to eq "show specified" + yielding env to stubs + is expected to eq "a" + different outcomes for the same request + the first request + is expected to eq "hello" + the second request + is expected to eq "world" with get params is expected to eq "a" - with simple path sets body - is expected to eq "hello" -Faraday::NestedParamsEncoder - encodes boolean values in array - encodes empty string array value - decodes nested array mixed types - decodes nested ignores repeated array notation - encodes nil array value - decodes nested ignores invalid array - encodes arrays indices when asked - decodes nested final value overrides any type - decodes hashes - decodes nested ignores malformed keys - decodes arrays - decodes nested subkeys dont have to be in brackets - decodes nested arrays rack compat - encodes unsorted when asked - encodes empty array value - encodes boolean values - encodes rack compat - when expecting hash but getting string - behaves like a wrong decoding - is expected to raise TypeError - when expecting nested hash but getting non nested - behaves like a wrong decoding - is expected to raise TypeError - when expecting hash but getting array - behaves like a wrong decoding - is expected to raise TypeError - when expecting array but getting hash - behaves like a wrong decoding - is expected to raise TypeError - when expecting array but getting string - behaves like a wrong decoding - is expected to raise TypeError - behaves like a params encoder - raises type error for empty string - escapes safe buffer - encodes nil +Faraday::Response::Logger + does not log error message by default + does not log response body by default + still returns output + logs method and url + logs status + logs filter url + logs response headers by default + logs filter headers + does not log request body by default + logs request headers by default + when logging request body + log only request body + when logger without program name + logs without program name + when logging response body + log only response body + with custom formatter + logs with custom formatter + without configuration + defaults to stdout + when logging headers and errors + logs error message + when logging errors + logs error message + when logging request and response bodies + logs filter body + log response body object + log request and response body + with default formatter + delegates logging to the formatter + when no route + delegates logging to the formatter + when not logging request headers + does not log request headers if option is false + when not logging response headers + does not log response headers if option is false + when using log_level + does not log request/response body on the info level + does not log headers on the info level + logs request/request body on the specified level (debug) + logs headers on the debug level + when logger with program name + logs with program name -Faraday::Request::Authorization - basic_auth - when passed correct params - is expected to eq "Basic YWxhZGRpbjpvcGVuc2VzYW1l" - and request already has an authentication header - does not interfere with existing authorization - when passed very long values - is expected to eq "Basic QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU...UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOg==" - and request already has an authentication header - does not interfere with existing authorization - authorization - with an argument - when passed a proc - is expected to eq "Bearer proc crunchy surprise" - and request already has an authentication header - does not interfere with existing authorization - when passed a lambda - is expected to eq "Bearer lambda crunchy surprise" - and request already has an authentication header - does not interfere with existing authorization - when passed a callable with an argument - is expected to eq "Bearer callable crunchy surprise" - and request already has an authentication header - does not interfere with existing authorization - when passed a callable - is expected to eq "Bearer custom_from_callable" - and request already has an authentication header - does not interfere with existing authorization - when passed a proc - is expected to eq "Bearer custom_from_proc" - and request already has an authentication header - does not interfere with existing authorization - when passed a string - is expected to eq "Bearer custom" - and request already has an authentication header - does not interfere with existing authorization - when passed too many arguments - is expected to raise ArgumentError - and request already has an authentication header - does not interfere with existing authorization +Faraday::RackBuilder + with default stack + is expected to eq Faraday::Adapter::Test + is expected to eq Faraday::Request::UrlEncoded + with custom adapter only + is expected to eq Faraday::Adapter::Test + is expected to be nil + with custom empty block + is expected to be nil + is expected to eq Faraday::Adapter::Test + when a middleware is added with named arguments + adds a handler to construct response adapter with options passed to response + when having two handlers + allows insert_after + allows to swap handlers + allows insert_before + allows to delete a handler + with custom handler and adapter + dup stack is unlocked + allows to compare handlers + locks the stack after making a request + when having a single handler + raises an error trying to use an unregistered symbol + allows use + allows insert_after + allows insert_before + is expected to eq [Apple] + when adapter is added with named options + adds a handler to construct adapter with named options + when a plain adapter is added with named arguments + adds a handler to construct adapter with options passed to adapter + when middleware is added with named arguments + adds a handler to construct middleware with options passed to use + when a middleware is added with named arguments + adds a handler to construct request adapter with options passed to request + when handlers are directly added or updated + adds a handler to construct adapter with options passed to insert + adds a handler with options passed to insert_after + adds a handler with options passed to swap Faraday::Middleware - #on_error - is called by #call - #on_request - is called by #call - #close - with app that supports #close - should issue warning - with app that doesn't support #close - should issue warning - options - when options are passed to the middleware - accepts options when initialized ::default_options + with FARADAY::MIDDLEWARE DEFAULT_OPTIONS and with Subclass DEFAULT_OPTIONS + and with two applications' options changed + is expected to eq "ok" + is expected to eq "ok" + updates subclasses and parent independent of each other + and without application options configured + is expected to eq "ok" + has only subclass defaults default_options input validation raises error if Faraday::Middleware option does not exist raises error if subclass option does not exist @@ -1815,378 +2206,23 @@ and without application options configured has only subclass defaults is expected to eq "ok" - with FARADAY::MIDDLEWARE DEFAULT_OPTIONS and with Subclass DEFAULT_OPTIONS - and with two applications' options changed - is expected to eq "ok" - updates subclasses and parent independent of each other - is expected to eq "ok" - and without application options configured - has only subclass defaults - is expected to eq "ok" - -Faraday::Request - supports marshal serialization - with global request options set - is expected to eq 3 - is expected to eq 5 - is expected to eq 3 - is expected to eq 5 - and per-request options set - is expected to eq {:consumer_key=>"anonymous", :consumer_secret=>"xyz"} - is expected to eq 10 - is expected to eq 5 - is expected to eq {:bar=>"bar", :foo=>"foo"} - is expected to eq "boo" - is expected to eq 5 - is expected to eq 10 - when HTTP method is post - is expected to eq :post - when setting a header on setup with []= syntax - is expected to eq "Faraday" - is expected to eq "Faraday" - is expected to eq "1.0" - when setting the body on setup - is expected to eq "hi" - is expected to eq "hi" - when setting the url on setup with a path including params - is expected to eq "foo.json" - is expected to eq "http://httpbingo.org/api/foo.json?a=1&b=2" - is expected to eq {"a"=>"1", "b"=>"2"} - when setting the url on setup with a URI - is expected to eq # - is expected to eq {"a"=>"1"} - is expected to eq "http://httpbingo.org/api/foo.json?a=1" - when nothing particular is configured - is expected to be falsey - is expected to be falsey - is expected to eq :get - when setting the url on setup with a string path and params - is expected to eq {"a"=>1} - is expected to eq "http://httpbingo.org/api/foo.json?a=1" - is expected to eq "foo.json" - -Faraday::Adapter - #request_timeout - gets :write timeout - gets :read timeout - attempts unknown timeout type - gets :open timeout - -Faraday::RequestOptions - allows to set the request proxy - -Faraday::Request::Json - object body with incompatible type - doesn't change body - doesn't change content type - false body - encodes body - adds content type - string body - doesn't change body - adds content type - with encoder - when encoder is not passed - adds content type - encodes body - calls JSON.generate - when encoder is passed as object - adds content type - calls specified JSON encoder's dump method - encodes body - when encoder is passed as an object-method pair - calls specified JSON encoder - adds content type - encodes body - object body - encodes body - adds content type - true body - adds content type - encodes body - empty object body - encodes body - empty body - doesn't change body - doesn't add content type - object body with vendor json type - encodes body - doesn't change content type - object body with json type - doesn't change content type - encodes body - no body - doesn't change body - doesn't add content type - -Faraday::Response::Logger - does not log response body by default - logs filter url - logs request headers by default - logs method and url - logs response headers by default - still returns output - logs status - does not log request body by default - logs filter headers - does not log error message by default - when not logging request headers - does not log request headers if option is false - when logger with program name - logs with program name - when using log_level - does not log request/response body on the info level - logs request/request body on the specified level (debug) - logs headers on the debug level - does not log headers on the info level - with default formatter - delegates logging to the formatter - when no route - delegates logging to the formatter - when not logging response headers - does not log response headers if option is false - when logging errors - logs error message - when logging response body - log only response body - without configuration - defaults to stdout - when logging headers and errors - logs error message - when logger without program name - logs without program name - when logging request body - log only request body - with custom formatter - logs with custom formatter - when logging request and response bodies - log request and response body - logs filter body - log response body object - -Faraday - has a version number - proxies to default_connection - uses method_missing on Faraday if there is no proxyable method - proxies methods that exist on the default_connection - proxied methods can be accessed - -Faraday::FlatParamsEncoder - decodes arrays - decodes boolean values - encodes unsorted when asked - encodes boolean values - encodes empty array in hash - encodes boolean values in array - behaves like a params encoder - encodes nil - escapes safe buffer - raises type error for empty string - -Faraday::Request::Instrumentation - instruments with default name - defaults to ActiveSupport::Notifications - is expected to eq "request.faraday" - with custom instrumenter - is expected to eq :custom - with custom name - instruments with custom name - is expected to eq "custom" - -Faraday::Response - is expected to be truthy - is expected to eq 404 - is expected to eq "text/plain" - is expected to raise RuntimeError - is expected to eq "text/plain" - is expected to eq "yikes" - is expected to be falsey - #to_hash - is expected to eq 404 - is expected to eq # - is expected to be a kind of Hash - is expected to eq "yikes" - is expected to eq {"Content-Type"=>"text/plain"} - marshal serialization support - is expected to eq 404 - is expected to eq {"Content-Type"=>"text/plain"} - is expected to eq # - is expected to be nil - is expected to eq "yikes" - #on_complete - parse body on finish - can access response body in on_complete callback - can access response body in on_complete callback - #apply_request - is expected to eq :post - is expected to eq "yikes" - -Faraday::Response::RaiseError - raises Faraday::UnauthorizedError for 401 responses - raises Faraday::ForbiddenError for 403 responses - raises Faraday::ProxyAuthError for 407 responses - raises Faraday::RequestTimeoutError for 408 responses - raises no exception for 200 responses - raises Faraday::ServerError for 500 responses - raises Faraday::TooManyRequestsError for 429 responses - raises Faraday::NilStatusError for nil status in response - raises Faraday::ClientError for other 4xx responses - raises Faraday::BadRequestError for 400 responses - raises Faraday::ConflictError for 409 responses - raises Faraday::ResourceNotFound for 404 responses - raises Faraday::UnprocessableEntityError for 422 responses - allowing certain status codes - raises an error for status codes that are not explicitly allowed - does not raise an error for allowed status codes - request info - returns the request info in the exception - DEFAULT_OPTION: include_request - when RaiseError DEFAULT_OPTION (include_request: true) is used - includes request info in the exception - when application sets default_options `include_request: false` - and when include_request option is omitted - does not include request info in the exception - and when include_request option is explicitly set for instance - includes request info in the exception - -Faraday::ProxyOptions - allows hash access - #from - works with no auth - defaults to http - treats empty string as nil - works with nil - works with string - -Faraday::MiddlewareRegistry - allows to register with symbol - allows to register with string - allows to register with constant - allows to register with Proc - -Faraday::AdapterRegistry - #initialize - is expected to raise NameError - looks up class by symbol name - caches lookups with explicit name - looks up class by string name - caches lookups with implicit name - is expected to raise NameError - -Faraday::Error - .initialize - with exception only - is expected to be nil - is expected to be nil - is expected to eq # - is expected to be nil - is expected to eq "test" - is expected to be nil - is expected to eq nil - is expected to eq "#>" - with exception and response object - is expected to eq nil - is expected to eq "test" - is expected to eq {:test=>"test"} - is expected to eq {"Content-Type"=>"application/json"} - is expected to eq 400 - is expected to eq # - is expected to eq #"application/json"} @status=400 @response_body={:test=>"test"}>, @on_complete_callbacks=[]> - with exception string and response hash - is expected to eq 400 - is expected to be nil - is expected to be nil - is expected to eq "#400}>" - is expected to eq "custom message" - is expected to be nil - is expected to eq {:status=>400} - with response hash - is expected to eq 400 - is expected to eq {:status=>400} - is expected to be nil - is expected to eq "the server responded with status 400" - is expected to be nil - is expected to eq "#400}>" - is expected to be nil - with string - is expected to eq "#>" - is expected to be nil - is expected to be nil - is expected to eq "custom message" - is expected to be nil - is expected to be nil - is expected to be nil - with anything else #to_s - is expected to be nil - is expected to be nil - is expected to eq "[\"error1\", \"error2\"]" - is expected to eq "#>" - is expected to be nil - is expected to be nil - is expected to be nil - -Faraday::Env - allows to access members - retains custom members - handle verify_hostname when fetching - ignores false when fetching - allows to access string non members - allows to access symbol non members - #body - when response is finished - returns the response body - allows to access response_body - allows to access request_body - when response is not finished yet - returns the request body - -Faraday::Utils - URI parsing - parses with block - escapes safe buffer - replaces headers hash - parses with default parser - parses with URI - .deep_merge! - recursively merges the headers - when a target hash has an Options Struct value - does not overwrite an Options Struct value - headers parsing - parse headers for aggregated responses - -Faraday::Response::Json - includes the response on the ParsingError instance - chokes on invalid json - no type matching - nullifies empty body - doesn't change nil body - parses json body - with array type matching - ignores json body of incorrect type - parses json body of correct type - with preserving raw - parses json body - with default regexp type matching - parses json body of correct type - ignores json body of incorrect type - with decoder - when decoder is passed as an object-method pair - passes relevant options to specified decoder's method - when decoder is not passed - passes relevant options to JSON parse even when nil responds to :load - passes relevant options to JSON parse - when decoder is passed as object - passes relevant options to specified decoder's load method - JSON options - passes relevant options to JSON parse - HEAD responses - nullifies the body if it's two spaces - nullifies the body if it's only one space + #on_error + is called by #call + options + when options are passed to the middleware + accepts options when initialized + #close + with app that doesn't support #close + should issue warning + with app that supports #close + should issue warning + #on_request + is called by #call -Finished in 1.07 seconds (files took 3.02 seconds to load) +Finished in 0.58299 seconds (files took 4.18 seconds to load) 595 examples, 0 failures -Randomized with seed 3890 +Randomized with seed 24500 Coverage report generated for RSpec to /build/reproducible-path/ruby-faraday-2.12.2/coverage. 0 / 0 LOC (100.0%) covered. [Coveralls] Outside the CI environment, not sending data. @@ -2220,12 +2256,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/763299/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/763299/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/4163237 and its subdirectories -I: Current time: Fri Mar 21 17:12:39 -12 2025 -I: pbuilder-time-stamp: 1742620359 +I: removing directory /srv/workspace/pbuilder/763299 and its subdirectories +I: Current time: Sat Apr 25 01:38:05 +14 2026 +I: pbuilder-time-stamp: 1777030685