Diff of the two buildlogs: -- --- b1/build.log 2025-10-20 22:15:39.891942017 +0000 +++ b2/build.log 2025-10-20 22:16:36.596008360 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Nov 22 16:37:47 -12 2026 -I: pbuilder-time-stamp: 1795408667 +I: Current time: Tue Oct 21 12:15:42 +14 2025 +I: pbuilder-time-stamp: 1760998542 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -26,53 +26,85 @@ 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/3388201/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3420990/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +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 Oct 20 22:15 /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/3420990/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3420990/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='arm64' - DEBIAN_FRONTEND='noninteractive' + 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]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='408f449eba114660aa52da8e0f35de49' - 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='3388201' - PS1='# ' - PS2='> ' + INVOCATION_ID=9832d129fc9b478083a53c2c2d15b82e + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-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=3420990 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.YrYJisPt/pbuilderrc_bTUM --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.YrYJisPt/b1 --logfile b1/build.log ruby-faraday_2.14.0-1.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4: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.YrYJisPt/pbuilderrc_LxM8 --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.YrYJisPt/b2 --logfile b2/build.log ruby-faraday_2.14.0-1.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink03-arm64 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3388201/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3420990/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -311,7 +343,7 @@ Get: 173 http://deb.debian.org/debian unstable/main arm64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 174 http://deb.debian.org/debian unstable/main arm64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 175 http://deb.debian.org/debian unstable/main arm64 ruby-webmock all 3.25.1-1 [68.8 kB] -Fetched 38.3 MB in 0s (113 MB/s) +Fetched 38.3 MB in 0s (122 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:arm64. (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 ... 19960 files and directories currently installed.) @@ -892,8 +924,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Mon Nov 23 04:38:19 UTC 2026. -Universal Time is now: Mon Nov 23 04:38:19 UTC 2026. +Local time is now: Mon Oct 20 22:16:12 UTC 2025. +Universal Time is now: Mon Oct 20 22:16:12 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-3) ... @@ -1048,7 +1080,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-faraday-2.14.0/ && 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.14.0-1_source.changes +I: user script /srv/workspace/pbuilder/3420990/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3420990/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-faraday-2.14.0/ && 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.14.0-1_source.changes dpkg-buildpackage: info: source package ruby-faraday dpkg-buildpackage: info: source version 2.14.0-1 dpkg-buildpackage: info: source distribution unstable @@ -1082,7 +1118,7 @@ │ ruby-faraday: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20261122-3402888-4ids73/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20251021-3436691-75sfpm/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 @@ -1092,7 +1128,7 @@ Name: faraday Version: 2.14.0 File: faraday-2.14.0.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/d20261122-3402888-4ids73/faraday-2.14.0.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/d20251021-3436691-75sfpm/faraday-2.14.0.gem /build/reproducible-path/ruby-faraday-2.14.0/debian/ruby-faraday/usr/share/rubygems-integration/all/gems/faraday-2.14.0/lib/faraday.rb /build/reproducible-path/ruby-faraday-2.14.0/debian/ruby-faraday/usr/share/rubygems-integration/all/gems/faraday-2.14.0/lib/faraday/adapter.rb /build/reproducible-path/ruby-faraday-2.14.0/debian/ruby-faraday/usr/share/rubygems-integration/all/gems/faraday-2.14.0/lib/faraday/adapter/test.rb @@ -1166,96 +1202,16 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-faraday-2.14.0/debian/ruby-faraday/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-faraday-2.14.0/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/aarch64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-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 14184 - -Faraday::Request::UrlEncoded - works with no headers - works with files - does nothing without payload - ignores custom content type - works with nested params - works with nested keys - works with unicode - works with with headers - works with non nested params - customising default_space_encoding - uses the custom character to encode spaces - -Faraday::Env - ignores false when fetching - handle verify_hostname when fetching - allows to access members - retains custom members - allows to access string non members - allows to access symbol non members - #body - when response is not finished yet - returns the request body - when response is finished - returns the response body - allows to access request_body - allows to access response_body - -Faraday::Adapter - #request_timeout - gets :write timeout - attempts unknown timeout type - gets :read timeout - gets :open timeout - -Faraday::Request::Authorization - authorization - when passed too many arguments - is expected to raise ArgumentError - 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 - 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 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 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 - basic_auth - 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 - when passed correct params - is expected to eq "Basic YWxhZGRpbjpvcGVuc2VzYW1l" - and request already has an authentication header - does not interfere with existing authorization +Randomized with seed 41037 Faraday::Adapter::Test - can handle single parameter block - is expected to eq "get" - request timeout - when request is too slow - raises an exception - when request is within timeout - is expected to eq 200 - with simple path sets status - is expected to eq 200 - yielding env to stubs - is expected to eq "a" + params parsing + with flat encoder + is expected to eq "a" + with nested encoder + is expected to eq "a" + with default encoder + is expected to eq "a" raising an error if no stub was found for request without specified header is expected to raise Faraday::Adapter::Test::Stubs::NotFound @@ -1263,41 +1219,16 @@ is expected to raise Faraday::Adapter::Test::Stubs::NotFound for request is expected to raise Faraday::Adapter::Test::Stubs::NotFound - can handle regular expression path - is expected to eq "show" - with get params - is expected to eq "a" - with simple path sets body - is expected to eq "hello" - can be called several times - is expected to eq "hello" 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" - with host points to the right stub - is expected to eq "domain: hello" - with simple path sets headers - is expected to eq "text/html" - ignoring unspecified get params - without params - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - with single param - is expected to eq "a" - with multiple params - is expected to eq "a" - params parsing - with default encoder - is expected to eq "a" - with flat encoder - is expected to eq "a" - with nested encoder - is expected to eq "a" + without header + is expected to eq "b" for request with non default params encoder 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 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 @@ -1308,52 +1239,79 @@ is expected to raise Faraday::Adapter::Test::Stubs::NotFound 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 {:a=>["x"]} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound different outcomes for the same request the second request is expected to eq "world" the first request is expected to eq "hello" + can handle single parameter block + is expected to eq "get" + with host points to the right stub + is expected to eq "domain: hello" + with get params + is expected to eq "a" + yielding env to stubs + is expected to eq "a" + can handle regular expression path with captured result + is expected to eq "show specified" + can handle regular expression path + is expected to eq "show" + can be called several times + is expected to eq "hello" + with simple path sets headers + is expected to eq "text/html" + with simple path sets status + is expected to eq 200 + with simple path sets body + is expected to eq "hello" + ignoring unspecified get params + without params + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + with multiple params + is expected to eq "a" + with single param + is expected to eq "a" + request timeout + when request is within timeout + is expected to eq 200 + when request is too slow + raises an exception strict_mode behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :user_agent=>"Unknown"} + 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 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 strict check + with {:b=>"xy"} 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 headers do not satisfy the strict check - with {"X-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=>"12", :b=>"xyz"} + with {:authorization=>"Bearer m_ck", :user_agent=>"Unknown"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound body_match? - when trying without any args for body - 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 when trying with string body stubs is expected to eq 200 behaves like raise NotFound when params do not satisfy the strict check - with {:a=>"12"} + 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 {:additional=>"special", :a=>"12", :b=>"xy", :c=>"hello"} + 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"} + with {"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=>"Basic m_ck", :"x-c"=>"hello"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when params do not satisfy the strict check - with {:b=>"xy"} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound + when params and headers are exactly set + is expected to eq 200 + when params and headers are exactly set with a custom user agent + is expected to eq 200 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 @@ -1361,160 +1319,165 @@ 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=>"123", :b=>"xy"} + with {:a=>"12", :b=>"xy", :c=>"hello"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - when params and headers are exactly set with a custom user agent - is expected to eq 200 - when params and headers are exactly set - is expected to eq 200 behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent", :x_special=>"special"} + 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=>"12"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound when strict_mode is disabled behaves like does not raise NotFound even when params do not satisfy the strict check with {: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"} + 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 headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent", :x_special=>"special"} + 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"} + with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent"} 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 {: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"} + 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", :"x-c"=>"hello", :x_special=>"special"} 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 raise NotFound when headers do not satisfy the strict check + with {:authorization=>"Bearer m_ck"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound -Faraday::Error - .initialize - with hash missing status key - is expected to eq {:body=>"error body"} - is expected to be nil - is expected to eq "the server responded with status - method and url are not available due to include_request: false on Faraday::Response::RaiseError middleware" - with hash with status and request but missing url in request - is expected to eq {:body=>"not found", :request=>{:method=>:get}, :status=>404} - is expected to be nil - is expected to eq "the server responded with status 404 for GET " - with exception string and response hash - is expected to eq "#400}>" - is expected to be nil - is expected to eq 400 - is expected to be nil - is expected to eq {:status=>400} - is expected to be nil - is expected to eq "custom message" - with anything else #to_s - is expected to be nil - is expected to be nil - is expected to be nil - is expected to be nil - is expected to eq "[\"error1\", \"error2\"]" - is expected to be nil - is expected to eq "#>" - with Faraday::Env with direct method and url properties - is expected to eq # @status=404 @response_body="not found"> - is expected to eq "the server responded with status 404 for GET http://example.com/test" - is expected to be nil - with hash with status but missing request data - is expected to eq "the server responded with status 404 - method and url are not available due to include_request: false on Faraday::Response::RaiseError middleware" - is expected to eq {:body=>"not found", :status=>404} - is expected to be nil - with exception and response object - is expected to eq nil - is expected to eq 400 - is expected to eq {"Content-Type"=>"application/json"} - is expected to eq {:test=>"test"} - is expected to eq "test" - is expected to eq # - is expected to eq #"application/json"} @status=400 @response_body={:test=>"test"}>, @on_complete_callbacks=[]> - with properly formed Faraday::Env - is expected to eq "the server responded with status 500 for POST https://api.example.com/users" - is expected to eq #"application/json"} @status=500 @response_body="{\"error\": \"Internal server error\"}"> - is expected to be nil - with string - is expected to eq "#>" - is expected to be nil - is expected to be nil - is expected to be nil - is expected to be nil - is expected to be nil - is expected to eq "custom message" - with hash with status and request but missing method in request - is expected to be nil - is expected to eq "the server responded with status 404 for http://example.com/test" - is expected to eq {:body=>"not found", :request=>{:url=>"http://example.com/test"}, :status=>404} - with response hash - is expected to be nil - is expected to be nil - is expected to eq {:status=>400} - is expected to eq 400 - is expected to be nil - is expected to eq "the server responded with status 400 - method and url are not available due to include_request: false on Faraday::Response::RaiseError middleware" - is expected to eq "#400}>" - with exception only - is expected to be nil - is expected to be nil - is expected to be nil - is expected to eq "#>" - is expected to eq "test" - is expected to be nil - is expected to eq # - is expected to eq nil - with Faraday::Env missing status key - is expected to eq "the server responded with status for " - is expected to eq # - is expected to be nil +Faraday::Response::Json + includes the response on the ParsingError instance + chokes on invalid json + JSON options + passes relevant options to JSON parse + with array type matching + parses json body of correct type + ignores json body of incorrect type + with decoder + 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 + when decoder is passed as an object-method pair + passes relevant options to specified decoder's method + no type matching + doesn't change nil body + nullifies empty body + parses json body + with default regexp type matching + ignores json body of incorrect type + parses json body of correct type + with preserving raw + parses json body + HEAD responses + nullifies the body if it's only one space + nullifies the body if it's two spaces + +Faraday::Response::Logger + logs response headers by default + does not log error message by default + does not log request body by default + still returns output + does not log response body by default + logs status + logs method and url + logs request headers by default + logs filter url + logs filter headers + when logging headers and errors + logs error message + when logging errors + logs error message + when logging request body + logs only request body + when logger with program name + logs with program name + when using log_level + logs headers on the debug level + logs request/request body on the specified level (debug) + does not log headers on the info level + does not log request/response body on the info level + when logging response body + logs only response body + with custom formatter + logs with custom formatter + with default formatter + delegates logging to the formatter + when no route + delegates logging to the formatter + when bodies are logged by default + logs response body + converts to UTF-8 + 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 logging request and response bodies + logs response body object + logs request and response body + logs filter body + when logger without program name + logs without program name + without configuration + defaults to stdout Faraday::RackBuilder - with custom handler and adapter - allows to compare handlers - dup stack is unlocked - locks the stack after making a request - when a middleware is added with named arguments - adds a handler to construct response adapter with options passed to response - with custom empty block - is expected to be nil - is expected to eq Faraday::Adapter::Test + 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 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 - when a plain adapter is added with named arguments - adds a handler to construct adapter with options passed to adapter - when a middleware is added with named arguments - adds a handler to construct request adapter with options passed to request + adds a handler with options passed to insert_after + adds a handler to construct adapter with options passed to insert when having two handlers allows insert_after - allows insert_before - allows to delete a handler allows to swap handlers - when adapter is added with named options - adds a handler to construct adapter with named options + allows to delete a handler + allows insert_before + when a middleware is added with named arguments + adds a handler to construct request adapter with options passed to request + with custom handler and adapter + locks the stack after making a request + dup stack is unlocked + allows to compare handlers when having a single handler + allows use allows insert_before is expected to eq [Apple] - allows use raises an error trying to use an unregistered symbol allows insert_after - when middleware is added with named arguments - adds a handler to construct middleware with options passed to use with default stack - is expected to eq Faraday::Request::UrlEncoded is expected to eq Faraday::Adapter::Test + is expected to eq Faraday::Request::UrlEncoded with custom adapter only is expected to be nil 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 + with custom empty block + is expected to be nil + is expected to eq Faraday::Adapter::Test + when a plain adapter is added with named arguments + adds a handler to construct adapter with options passed to adapter + when a middleware is added with named arguments + adds a handler to construct response adapter with options passed to response + +Faraday::MiddlewareRegistry + allows to register with Proc + allows to register with symbol + allows to register with constant + allows to register with string Faraday has a version number @@ -1523,517 +1486,455 @@ proxies methods that exist on the default_connection uses method_missing on Faraday if there is no proxyable method -Faraday::MiddlewareRegistry - allows to register with constant - allows to register with symbol - allows to register with Proc - allows to register with string - -Faraday::Options - #merge - deeply merges options with options having nil sub-options - merges options with hashes - deeply merges options with nil - deeply merges options with hashes - deeply merges two options - #dup - duplicate options but not sub-options - #empty? - returns true only if all options are nil - #update - updates options from hashes - #key? - returns true if the key exists and is not nil - #fetch - when the fetched key has no value - uses falsey default - needs a default if key is missing - accepts block - when the fetched key has a value - grabs value - works with key - #value? - returns true if any key has that value - #delete - allows to remove value for key - #each_key - allows to iterate through keys - #each_value - allows to iterate through values - #memoized - accepts block - requires block - #deep_dup - duplicate options and also suboptions - #clear - clears the options - #from - works with deep hash - works with nil - works with options - is expected to raise NoMethodError - works with options with sub object - works with hash with sub object - works with hash - respects inheritance - -Faraday::ProxyOptions - allows hash access - #from - works with string - works with hash - works with nil - defaults to http - works with option - works with no auth - treats empty string as nil - -Faraday::FlatParamsEncoder - encodes boolean values in array - encodes empty array in hash +Faraday::NestedParamsEncoder + decodes nested ignores repeated array notation + decodes nested array mixed types + decodes nested arrays rack compat + encodes nil array value + encodes rack compat + decodes nested ignores invalid array + encodes arrays indices when asked + encodes boolean values + decodes nested final value overrides any type encodes unsorted when asked + encodes boolean values in array + decodes nested subkeys dont have to be in brackets + encodes empty array value decodes arrays - decodes boolean values - encodes boolean values + decodes nested ignores malformed keys + decodes hashes + encodes empty string array value behaves like a params encoder raises type error for empty string - encodes nil escapes safe buffer - -Faraday::Request::Instrumentation - defaults to ActiveSupport::Notifications - instruments with default name - 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::Request - supports marshal serialization - when setting the url on setup with a path including params - is expected to eq "http://httpbingo.org/api/foo.json?a=1&b=2" - is expected to eq "foo.json" - is expected to eq {"a"=>"1", "b"=>"2"} - when setting the url on setup with a string path and params - is expected to eq "foo.json" - is expected to eq {"a"=>1} - is expected to eq "http://httpbingo.org/api/foo.json?a=1" - when HTTP method is post - is expected to eq :post - with global request options set - is expected to eq 5 - is expected to eq 3 - 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 5 - is expected to eq "boo" - is expected to eq {:bar=>"bar", :foo=>"foo"} - is expected to eq 10 - is expected to eq 10 - is expected to eq 5 - 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 URI - is expected to eq # - is expected to eq "http://httpbingo.org/api/foo.json?a=1" - is expected to eq {"a"=>"1"} - when setting the body on setup - is expected to eq "hi" - is expected to eq "hi" - when setting a header on setup with []= syntax - is expected to eq "1.0" - is expected to eq "Faraday" - is expected to eq "Faraday" - -Faraday::Utils::Headers - #fetch - is expected to eq false - is expected to eq "default" - calls a block when provided - raises an error if key not found - is expected to eq "application/json" - is expected to be nil - is expected to eq "Invalid key" - is expected to eq "application/json" - is expected to eq "application/json" - 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 eq "application/xml" - is expected to include "content-type" - when Content-Type is set to application/json - is expected to eq "application/json" - is expected to include "content-type" - is expected to eq "application/json" - is expected to eq "application/json" - is expected to eq ["Content-Type"] - #dig - is expected to eq "application/json" - is expected to eq "application/json" - is expected to eq "application/json" - is expected to be nil - #parse - when response headers include a blank line - is expected to eq "text/html" - when response headers leave http status line out - is expected to eq "text/html" - is expected to eq "text/html" - is expected to eq ["Content-Type"] - when response headers values include a colon - is expected to eq "http://httpbingo.org/" - when response headers include already stored keys - is expected to eq "8, 123" - #delete - is expected to eq "application/json" - is expected to be nil - is expected to eq 0 - is expected not to include "content-type" + encodes nil + 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 + when expecting hash but getting array + behaves like a wrong decoding + is expected to raise TypeError Faraday::Response::RaiseError - raises legacy Faraday::UnprocessableEntityError for 422 responses - raises Faraday::ConflictError for 409 responses - raises Faraday::TooManyRequestsError for 429 responses - raises Faraday::ForbiddenError for 403 responses - raises Faraday::ServerError for 500 responses raises Faraday::ClientError for other 4xx responses - raises Faraday::UnprocessableContentError for 422 responses raises Faraday::UnauthorizedError for 401 responses - raises Faraday::ResourceNotFound for 404 responses - raises Faraday::ProxyAuthError for 407 responses - raises Faraday::NilStatusError for nil status in response - raises Faraday::RequestTimeoutError for 408 responses + raises Faraday::ForbiddenError for 403 responses + raises Faraday::UnprocessableContentError for 422 responses raises Faraday::BadRequestError for 400 responses + raises legacy Faraday::UnprocessableEntityError for 422 responses + raises Faraday::RequestTimeoutError for 408 responses + raises Faraday::NilStatusError for nil status in response + raises Faraday::ProxyAuthError for 407 responses + raises Faraday::ServerError for 500 responses raises no exception for 200 responses + raises Faraday::ResourceNotFound for 404 responses + raises Faraday::TooManyRequestsError for 429 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 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 + and when include_request option is omitted + does not include request info in the exception allowing certain status codes raises an error for status codes that are not explicitly allowed does not raise an error for allowed status codes -Faraday::RequestOptions - allows to set the request proxy - Faraday::Request::Json - object body with vendor json type - doesn't change content type + false body + adds content type encodes body object body with incompatible type - doesn't change content type doesn't change body + doesn't change content type + object body + adds content type + encodes body + object body with vendor json type + encodes body + doesn't change content type empty body - doesn't add content type doesn't change body - false body + doesn't add content type + object body with json type + doesn't change content type + encodes body + empty object body + encodes body + true body encodes body adds content type string body - doesn't change body adds content type + doesn't change body no body doesn't change body doesn't add content type - object body - adds content type - encodes body - true body - adds content type - encodes body - object body with json type - encodes body - doesn't change content type - empty object body - encodes body with encoder + when encoder is not passed + adds content type + calls JSON.generate + encodes body 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 - when encoder is not passed - calls JSON.generate + calls specified JSON encoder adds content type - encodes body - -Faraday::Utils - URI parsing - parses with block - parses with URI - escapes safe buffer - replaces headers hash - parses with default parser - .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 - is expected to eq "text/plain" - is expected to eq "yikes" - is expected to be falsey - is expected to eq "text/plain" - is expected to raise RuntimeError - is expected to eq 404 is expected to eq # + is expected to eq 404 + is expected to raise RuntimeError is expected to be truthy - #apply_request - is expected to eq :post + is expected to eq "yikes" + is expected to eq "text/plain" + is expected to eq "text/plain" + is expected to be falsey + #to_hash + is expected to eq # 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 - marshal serialization support - is expected to be nil is expected to eq {"Content-Type"=>"text/plain"} - is expected to eq "yikes" + is expected to be a kind of Hash is expected to eq 404 + when response is not finished + is expected to eq {:body=>nil, :response_headers=>{}, :status=>nil, :url=>nil} + marshal serialization support is expected to eq # - #to_hash is expected to eq 404 - is expected to be a kind of Hash - is expected to eq # is expected to eq "yikes" is expected to eq {"Content-Type"=>"text/plain"} - when response is not finished - is expected to eq {:body=>nil, :response_headers=>{}, :status=>nil, :url=>nil} + is expected to be nil + #on_complete + can access response body in on_complete callback + parse body on finish + can access response body in on_complete callback + #apply_request + is expected to eq :post + is expected to eq "yikes" -Faraday::Middleware - #on_error - is called by #call - #close - with app that doesn't support #close - should issue warning - with app that supports #close - should issue warning - options - when options are passed to the middleware - accepts options when initialized - ::default_options - with subclass DEFAULT_OPTIONS defined - and without application options configured - is expected to eq "ok" - has only subclass defaults - and with two applications' options changed - updates subclasses and parent independent of each other - is expected to eq "ok" - is expected to eq "ok" - and with one application's options changed - is expected to eq "ok" - only updates default options of target subclass - with FARADAY::MIDDLEWARE DEFAULT_OPTIONS and with Subclass DEFAULT_OPTIONS - and without application options configured - is expected to eq "ok" - has only subclass defaults - and with two applications' options changed - is expected to eq "ok" - updates subclasses and parent independent of each other - is expected to eq "ok" - default_options input validation - raises error if subclass option does not exist - raises error if Faraday::Middleware option does not exist - #on_request - is called by #call +Faraday::AdapterRegistry + #initialize + is expected to raise NameError + caches lookups with implicit name + looks up class by string name + is expected to raise NameError + caches lookups with explicit name + looks up class by symbol name -Faraday::Response::Json - chokes on invalid json - includes the response on the ParsingError instance - no type matching - doesn't change nil body - nullifies empty body - parses json body - JSON options - passes relevant options to JSON parse - HEAD responses - nullifies the body if it's only one space - nullifies the body if it's two spaces - with preserving raw - parses json body - with array type matching - ignores json body of incorrect type - parses json body of correct type - with default regexp 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 - passes relevant options to JSON parse even when nil responds to :load +Faraday::Request::Instrumentation + instruments with default name + defaults to ActiveSupport::Notifications + is expected to eq "request.faraday" + with custom name + instruments with custom name + is expected to eq "custom" + with custom instrumenter + is expected to eq :custom -Faraday::NestedParamsEncoder - decodes nested ignores invalid array +Faraday::ProxyOptions + allows hash access + #from + defaults to http + works with no auth + treats empty string as nil + works with option + works with string + works with nil + works with hash + +Faraday::Utils::Headers + #dig + is expected to eq "application/json" + is expected to be nil + is expected to eq "application/json" + is expected to eq "application/json" + when Content-Type is set to application/xml + is expected to eq "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" + #fetch + calls a block when provided + raises an error if key not found + is expected to eq "Invalid key" + is expected to eq false + is expected to eq "application/json" + is expected to eq "default" + is expected to be nil + is expected to eq "application/json" + is expected to eq "application/json" + when Content-Type is set to 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" + 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 "text/html" + is expected to eq "text/html" + is expected to eq ["Content-Type"] + when response headers include a blank line + is expected to eq "text/html" + when response headers include already stored keys + is expected to eq "8, 123" + #delete + is expected to eq "application/json" + is expected to eq 0 + is expected not to include "content-type" + is expected to be nil + +Faraday::FlatParamsEncoder encodes unsorted when asked - encodes empty string array value encodes boolean values in array + decodes boolean values encodes boolean values - encodes arrays indices when asked - decodes nested arrays rack compat - decodes nested subkeys dont have to be in brackets - encodes nil array value - decodes nested array mixed types - encodes empty array value + encodes empty array in hash decodes arrays - decodes nested final value overrides any type - decodes nested ignores malformed keys - decodes nested ignores repeated array notation - decodes hashes - encodes rack compat - 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 behaves like a params encoder encodes nil escapes safe buffer raises type error for empty string - 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 -Faraday::AdapterRegistry - #initialize - caches lookups with explicit name - caches lookups with implicit name - is expected to raise NameError - looks up class by symbol name - is expected to raise NameError - looks up class by string name +Faraday::Env + retains custom members + handle verify_hostname when fetching + allows to access string non members + allows to access symbol non members + allows to access members + ignores false when fetching + #body + when response is not finished yet + returns the request body + when response is finished + returns the response body + allows to access response_body + allows to access request_body -Faraday::Response::Logger - logs filter url - still returns output - logs response headers by default - does not log response body by default - logs method and url - logs request headers by default - logs status - logs filter headers - does not log request body by default - does not log error message by default - when not logging response headers - does not log response headers if option is false - with default formatter - delegates logging to the formatter - when no route - delegates logging to the formatter - when logger with program name - logs with program name - when logging request and response bodies - logs filter body - logs request and response body - logs response body object - when not logging request headers - does not log request headers if option is false - with custom formatter - logs with custom formatter - without configuration - defaults to stdout - when bodies are logged by default - converts to UTF-8 - logs response body - when using log_level - logs request/request body on the specified level (debug) - does not log headers on the info level - logs headers on the debug level - does not log request/response body on the info level - when logging headers and errors - logs error message - when logging errors - logs error message - when logger without program name - logs without program name - when logging response body - logs only response body - when logging request body - logs only request body +Faraday::Adapter + #request_timeout + gets :open timeout + gets :write timeout + attempts unknown timeout type + gets :read timeout -Faraday::Connection - #build_exclusive_url - always returns new URI instance - does not use connection params - does not add ending slash given nil url - overrides connection port for absolute url - allows to provide params argument - does not add ending slash given empty url - handles uri instances - with url_prefixed connection - joins url to base with ending slash - parses url and changes scheme - used default base with ending slash - overrides base - with complete url - is expected to eq 80 - is expected to eq "a=1" - is expected to eq "http" - is expected to eq "/sake.html" - is expected to eq "httpbingo.org" - with relative path - 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 - is expected to eq "/fish/sake.html" - with absolute path - example at ./spec/faraday/connection_spec.rb:207 - is expected to eq "/sake.html" - is expected to eq "/sake.html" - is expected to eq "/sake.html" - with colon in path - joins url to base when used relative path - joins url to base when used with path prefix - joins url to base when used absolute path - with a custom `default_uri_parser` - does not raise error - #dup - is expected to eq "1" - is expected to eq # - is expected to eq "text/plain" - after manual changes - is expected to be nil - is expected to eq 1 - is expected to be falsey +Faraday::Request + supports marshal serialization + when setting the url on setup with a URI + is expected to eq "http://httpbingo.org/api/foo.json?a=1" + is expected to eq # + is expected to eq {"a"=>"1"} + when setting a header on setup with []= syntax + is expected to eq "Faraday" + is expected to eq "1.0" + is expected to eq "Faraday" + 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"} + 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 10 + is expected to eq 10 is expected to eq 5 - is expected to be falsey - is expected to eq 1 - #build_request - is expected to be truthy - is expected to be empty - is expected to eq ["Authorization"] + is expected to eq "boo" + is expected to eq {:bar=>"bar", :foo=>"foo"} + is expected to eq {:consumer_key=>"anonymous", :consumer_secret=>"xyz"} + is expected to eq 5 + when setting the url on setup with a string path and params + is expected to eq "http://httpbingo.org/api/foo.json?a=1" + is expected to eq {"a"=>1} + is expected to eq "foo.json" + when HTTP method is post + is expected to eq :post + when setting the body on setup + is expected to eq "hi" + is expected to eq "hi" + when nothing particular is configured is expected to be falsey - #close - can close underlying app + is expected to be falsey + is expected to eq :get + +Faraday::Error + .initialize + with hash with status but missing request data + is expected to eq {:body=>"not found", :status=>404} + is expected to eq "the server responded with status 404 - method and url are not available due to include_request: false on Faraday::Response::RaiseError middleware" + is expected to be nil + with hash with status and request but missing url in request + is expected to eq "the server responded with status 404 for GET " + is expected to be nil + is expected to eq {:body=>"not found", :request=>{:method=>:get}, :status=>404} + with string + is expected to be nil + is expected to eq "custom message" + is expected to eq "#>" + is expected to be nil + is expected to be nil + is expected to be nil + is expected to be nil + with exception and response object + is expected to eq 400 + is expected to eq "test" + is expected to eq {"Content-Type"=>"application/json"} + is expected to eq # + is expected to eq nil + is expected to eq #"application/json"} @status=400 @response_body={:test=>"test"}>, @on_complete_callbacks=[]> + is expected to eq {:test=>"test"} + with exception string and response hash + is expected to eq {:status=>400} + is expected to eq 400 + is expected to eq "custom message" + is expected to be nil + is expected to be nil + is expected to eq "#400}>" + is expected to be nil + with exception only + is expected to be nil + is expected to eq "test" + is expected to be nil + is expected to eq "#>" + is expected to be nil + is expected to eq # + is expected to be nil + is expected to eq nil + with anything else #to_s + is expected to eq "#>" + is expected to be nil + is expected to eq "[\"error1\", \"error2\"]" + is expected to be nil + is expected to be nil + is expected to be nil + is expected to be nil + with hash with status and request but missing method in request + is expected to eq {:body=>"not found", :request=>{:url=>"http://example.com/test"}, :status=>404} + is expected to eq "the server responded with status 404 for http://example.com/test" + is expected to be nil + with Faraday::Env with direct method and url properties + is expected to eq # @status=404 @response_body="not found"> + is expected to eq "the server responded with status 404 for GET http://example.com/test" + is expected to be nil + with hash missing status key + is expected to eq "the server responded with status - method and url are not available due to include_request: false on Faraday::Response::RaiseError middleware" + is expected to be nil + is expected to eq {:body=>"error body"} + with properly formed Faraday::Env + is expected to be nil + is expected to eq "the server responded with status 500 for POST https://api.example.com/users" + is expected to eq #"application/json"} @status=500 @response_body="{\"error\": \"Internal server error\"}"> + with Faraday::Env missing status key + is expected to be nil + is expected to eq "the server responded with status for " + is expected to eq # + with response hash + is expected to be nil + is expected to be nil + is expected to be nil + is expected to eq "the server responded with status 400 - method and url are not available due to include_request: false on Faraday::Response::RaiseError middleware" + is expected to eq 400 + is expected to eq "#400}>" + is expected to eq {:status=>400} + +Faraday::RequestOptions + allows to set the request proxy + +Faraday::Request::UrlEncoded + works with nested keys + works with nested params + ignores custom content type + works with files + works with non nested params + does nothing without payload + works with with headers + works with unicode + works with no headers + customising default_space_encoding + uses the custom character to encode spaces + +Faraday::Utils + .deep_merge! + recursively merges the headers + when a target hash has an Options Struct value + does not overwrite an Options Struct value + URI parsing + replaces headers hash + escapes safe buffer + parses with block + parses with URI + parses with default parser + headers parsing + parse headers for aggregated responses + +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 + 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 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 lambda + is expected to eq "Bearer lambda crunchy surprise" + 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 + 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::Connection request params + with simple url + test_overrides_request_params_block_url + test_overrides_request_params_block + test_overrides_request_params with flat params encoder supports array params in params with array param in url @@ -2042,129 +1943,264 @@ supports array params in url supports array params in params with url and extra params - allows to override all params - allows to set params_encoder for single request merges connection and request params - with simple url - test_overrides_request_params - test_overrides_request_params_block - test_overrides_request_params_block_url + allows to set params_encoder for single request + allows to override all params + proxy support + allows when subdomain url is in no proxy list + uses env http_proxy + allows when prefixed url is not in no proxy list + allows when url not in no proxy list + does not accept uppercase env + allows when url in no proxy list + accepts string + allows when ip address is not in no proxy list but url is + allows in multi element no proxy list + ignores env proxy if set that way + accepts http env + fetches no proxy from nil env + uses processes no_proxy before http_proxy + allows when url in no proxy list with url_prefix + accepts uri + accepts env without scheme + fetches no proxy from blank env + allows when url is not in no proxy list but ip address is + accepts hash with string uri + accepts http env with auth + accepts hash + gives priority to manually set proxy + uses env https_proxy + uses processes no_proxy before https_proxy + test proxy requires uri + performing a request + dynamically check no proxy + dynamically checks proxy + default_connection_options + assigning a default value + behaves like default connection options + works with implicit url + works with instance connection options + default connection options persist with an instance overriding + default connection uses default connection options + 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"} + assigning a hash + behaves like default connection options + works with implicit url + works with option url + default connection uses default connection options + works with instance connection options + default connection options persist with an instance overriding + #to_env + bracketizes nested params in query + escapes per spec + bracketizes repeated params in query + parses url params into query + without braketizing repeated params in query .new - with custom params - is expected to eq {"a"=>1} - with empty block - is expected to eq 0 - with custom headers - is expected to eq "Faraday" - with basic_auth in url - is expected to eq "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" with block is expected to eq "/omnom" is expected to eq 0 + with custom builder + is expected to eq # with verify_hostname false is expected to be falsey - with custom params and params in url - is expected to eq {"a"=>3, "b"=>"2"} - with ssl false - is expected to be falsey - with explicit url param + with implicit url param behaves like initializer with url with simple url - is expected to eq "httpbingo.org" - is expected to eq {} - is expected to eq "http" is expected to eq 80 + is expected to eq "http" + is expected to eq {} is expected to eq "/" - with IPv6 address - is expected to eq "[::1]" - is expected to eq 85 + is expected to eq "httpbingo.org" with complex url - is expected to eq "/fish" is expected to eq 815 is expected to eq {"a"=>"1"} - with custom builder - is expected to eq # - with implicit url param + is expected to eq "/fish" + with IPv6 address + is expected to eq "[::1]" + is expected to eq 85 + with custom params and params in url + is expected to eq {"a"=>3, "b"=>"2"} + with custom headers + is expected to eq "Faraday" + with custom params + is expected to eq {"a"=>1} + with explicit url param behaves like initializer with url 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 + is expected to eq {"a"=>"1"} + is expected to eq "/fish" with simple url - 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 "http" + with empty block + is expected to eq 0 + with ssl false + is expected to be falsey + with basic_auth in url + is expected to eq "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" + #dup + is expected to eq # + is expected to eq "1" + is expected to eq "text/plain" + after manual changes + is expected to eq 1 + is expected to eq 5 + is expected to eq 1 + is expected to be falsey + is expected to be falsey + is expected to be nil + #close + can close underlying app #build_url merges params uses params - default_connection_options - assigning a default value - behaves like default connection options - works with implicit url - works with instance connection options - default connection uses default connection options - default connection options persist with an instance overriding - works with option url - 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 implicit url - default connection uses default connection options - works with instance connection options - default connection options persist with an instance overriding - works with option url - proxy support - ignores env proxy if set that way - uses processes no_proxy before https_proxy - allows when prefixed url is not in no proxy list - does not accept uppercase env - uses env http_proxy - allows when url is not in no proxy list but ip address is - fetches no proxy from nil env - allows when url not in no proxy list - gives priority to manually set proxy - test proxy requires uri - accepts string - uses processes no_proxy before http_proxy - allows when ip address is not in no proxy list but url is - fetches no proxy from blank env - accepts hash - allows when subdomain url is in no proxy list - allows in multi element no proxy list - allows when url in no proxy list - accepts http env - uses env https_proxy - accepts env without scheme - accepts uri - accepts http env with auth - accepts hash with string uri - allows when url in no proxy list with url_prefix - performing a request - dynamically check no proxy - dynamically checks proxy #respond_to? is expected to be truthy is expected to be truthy - #to_env - bracketizes nested params in query - escapes per spec - bracketizes repeated params in query - without braketizing repeated params in query - parses url params into query + #build_exclusive_url + does not add ending slash given nil url + overrides connection port for absolute url + always returns new URI instance + does not use connection params + allows to provide params argument + does not add ending slash given empty url + handles uri instances + 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 relative path + is expected to eq "/fish/sake.html" + is expected to eq "/fish/sake.html" + is expected to eq "/sake.html" + is expected to eq "/fish/sake.html" + uses connection host as default host + with url_prefixed connection + joins url to base with ending slash + overrides base + parses url and changes scheme + used default base with ending slash + with complete url + is expected to eq "/sake.html" + is expected to eq 80 + is expected to eq "http" + is expected to eq "a=1" + is expected to eq "httpbingo.org" + with a custom `default_uri_parser` + does not raise error + with colon in path + joins url to base when used absolute path + joins url to base when used relative path + joins url to base when used with path prefix + #build_request + is expected to be empty + is expected to eq ["Authorization"] + is expected to be truthy + is expected to be falsey + +Faraday::Options + #merge + deeply merges options with nil + deeply merges options with hashes + merges options with hashes + deeply merges two options + deeply merges options with options having nil sub-options + #dup + duplicate options but not sub-options + #deep_dup + duplicate options and also suboptions + #each_key + allows to iterate through keys + #value? + returns true if any key has that value + #each_value + allows to iterate through values + #memoized + accepts block + requires block + #empty? + returns true only if all options are nil + #from + works with nil + works with hash + works with hash with sub object + works with options + is expected to raise NoMethodError + works with deep hash + works with options with sub object + respects inheritance + #key? + returns true if the key exists and is not nil + #update + updates options from hashes + #delete + allows to remove value for key + #fetch + when the fetched key has no value + needs a default if key is missing + uses falsey default + accepts block + when the fetched key has a value + grabs value + works with key + #clear + clears the options + +Faraday::Middleware + 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_error + is called by #call + #on_request + is called by #call + ::default_options + 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" + default_options input validation + raises error if Faraday::Middleware option does not exist + raises error if subclass option does not exist + with subclass DEFAULT_OPTIONS defined + and with one application's options changed + only updates default options of target subclass + is expected to eq "ok" + and without application options configured + has only subclass defaults + is expected to eq "ok" + and with two applications' options changed + is expected to eq "ok" + updates subclasses and parent independent of each other + is expected to eq "ok" -Finished in 0.67816 seconds (files took 0.89228 seconds to load) +Finished in 0.45619 seconds (files took 0.7446 seconds to load) 623 examples, 0 failures -Randomized with seed 14184 +Randomized with seed 41037 Coverage report generated for RSpec to /build/reproducible-path/ruby-faraday-2.14.0/coverage. 0 / 0 LOC (100.0%) covered. [Coveralls] Outside the CI environment, not sending data. @@ -2198,12 +2234,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/3420990/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3420990/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/3388201 and its subdirectories -I: Current time: Sun Nov 22 16:38:38 -12 2026 -I: pbuilder-time-stamp: 1795408718 +I: removing directory /srv/workspace/pbuilder/3420990 and its subdirectories +I: Current time: Tue Oct 21 12:16:35 +14 2025 +I: pbuilder-time-stamp: 1760998595