Diff of the two buildlogs: -- --- b1/build.log 2024-12-18 17:40:22.545593158 +0000 +++ b2/build.log 2024-12-18 17:41:41.789994679 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Jan 20 12:02:43 -12 2026 -I: pbuilder-time-stamp: 1768953763 +I: Current time: Thu Dec 19 07:40:24 +14 2024 +I: pbuilder-time-stamp: 1734543624 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -30,54 +30,86 @@ 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/8657/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/53599/tmp/hooks/D01_modify_environment starting +debug: Running on ionos12-i386. +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 Dec 18 17:40 /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/53599/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/53599/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=22 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='i386' + 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]="i686-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=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=10 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='ccbc6784c8b747bc8dfc25a9801f000e' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='8657' - PS1='# ' - PS2='> ' + INVOCATION_ID=d09593b449604cca85ca1405c0d23e8c + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-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=53599 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.vmtJ5Acs/pbuilderrc_vjq6 --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.vmtJ5Acs/b1 --logfile b1/build.log ruby-faraday_2.10.0-2.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152: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.vmtJ5Acs/pbuilderrc_LsfP --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.vmtJ5Acs/b2 --logfile b2/build.log ruby-faraday_2.10.0-2.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos6-i386 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/8657/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/53599/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -374,7 +406,7 @@ Get: 215 http://deb.debian.org/debian unstable/main i386 ruby-sinatra all 3.2.0-1 [121 kB] Get: 216 http://deb.debian.org/debian unstable/main i386 ruby-typhoeus all 1.4.0-4 [36.3 kB] Get: 217 http://deb.debian.org/debian unstable/main i386 ruby-webmock all 3.24.0-1 [68.5 kB] -Fetched 52.6 MB in 2s (21.4 MB/s) +Fetched 52.6 MB in 1s (44.9 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.12-minimal:i386. (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 ... 19952 files and directories currently installed.) @@ -1092,8 +1124,8 @@ Setting up tzdata (2024b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Wed Jan 21 00:03:07 UTC 2026. -Universal Time is now: Wed Jan 21 00:03:07 UTC 2026. +Local time is now: Wed Dec 18 17:41:09 UTC 2024. +Universal Time is now: Wed Dec 18 17:41:09 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up mariadb-common (1:11.4.3-1) ... @@ -1280,7 +1312,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-faraday-2.10.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.10.0-2_source.changes +I: user script /srv/workspace/pbuilder/53599/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/53599/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-faraday-2.10.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.10.0-2_source.changes dpkg-buildpackage: info: source package ruby-faraday dpkg-buildpackage: info: source version 2.10.0-2 dpkg-buildpackage: info: source distribution unstable @@ -1314,7 +1350,7 @@ │ ruby-faraday: Installing files and building extensions for ruby3.1 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20260120-14720-pw6u0v/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20241219-60085-9wtk4n/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: open-ended dependency on logger (>= 0) is not recommended use a bounded requirement, such as '~> x.y' @@ -1323,7 +1359,7 @@ Name: faraday Version: 2.10.0 File: faraday-2.10.0.gem -/usr/bin/ruby3.1 -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/d20260120-14720-pw6u0v/faraday-2.10.0.gem +/usr/bin/ruby3.1 -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/d20241219-60085-9wtk4n/faraday-2.10.0.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/reproducible-path/ruby-faraday-2.10.0/debian/ruby-faraday/usr/share/rubygems-integration/all/gems/faraday-2.10.0/lib/faraday.rb /build/reproducible-path/ruby-faraday-2.10.0/debian/ruby-faraday/usr/share/rubygems-integration/all/gems/faraday-2.10.0/lib/faraday/adapter.rb @@ -1398,161 +1434,225 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-faraday-2.10.0/debian/ruby-faraday/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-faraday-2.10.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/i386-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/i386-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.1 -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 9674 +Randomized with seed 14821 -Faraday::ProxyOptions - allows hash access - #from - works with no auth - treats empty string as nil - works with nil - works with string - defaults to http - -Faraday::RackBuilder - when a middleware is added with named arguments - adds a handler to construct request adapter with options passed to request - when having two handlers - allows insert_before - allows to delete a handler - allows to swap handlers - allows insert_after - when handlers are directly added or updated - adds a handler with options passed to swap - adds a handler to construct adapter with options passed to insert - adds a handler with options passed to insert_after - when a middleware is added with named arguments - adds a handler to construct response adapter with options passed to response - with custom handler and adapter - allows to compare handlers - dup stack is unlocked - locks the stack after making a request - with custom empty block - is expected to be nil - is expected to eq Faraday::Adapter::Test - with default stack - is expected to eq Faraday::Adapter::Test - is expected to eq Faraday::Request::UrlEncoded - when adapter is added with named options - adds a handler to construct adapter with named options - when middleware is added with named arguments - adds a handler to construct middleware with options passed to use - when a plain adapter is added with named arguments - adds a handler to construct adapter with options passed to adapter - with custom adapter only - is expected to eq Faraday::Adapter::Test - is expected to be nil - when having a single handler - raises an error trying to use an unregistered symbol - allows insert_before - allows use - allows insert_after - is expected to eq [Apple] - -Faraday::Request::Json - object body - encodes body - adds content type - true body - adds content type - 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 passed as an object-method pair - adds content type - encodes body - calls specified JSON encoder - when encoder is passed as object - encodes body - adds content type - calls specified JSON encoder's dump method - when encoder is not passed - calls JSON.generate - encodes body - adds content type - false body - adds content type - encodes body - empty body - doesn't add content type - doesn't change body - string body - adds content type - doesn't change body - object body with incompatible type - doesn't change body - doesn't change content type - empty object body - encodes body - object body with json type - encodes body - doesn't change content type +Faraday::Adapter + #request_timeout + gets :read timeout + attempts unknown timeout type + gets :write timeout + gets :open timeout Faraday::AdapterRegistry #initialize - is expected to raise NameError - looks up class by symbol name caches lookups with explicit name - is expected to raise NameError looks up class by string name + is expected to raise NameError caches lookups with implicit name + looks up class by symbol name + is expected to raise NameError -Faraday::Response::Json - includes the response on the ParsingError instance - chokes on invalid json - with default regexp type matching - ignores json body of incorrect type - parses json body of correct type - 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 - passes relevant options to JSON parse even when nil responds to :load - HEAD responses - nullifies the body if it's two spaces - nullifies the body if it's only one space - no type matching - parses json body - nullifies empty body - doesn't change nil body - with preserving raw - parses json body - JSON options - passes relevant options to JSON parse +Faraday::Response::Logger + logs response headers by default + still returns output + logs status + does not log error message by default + logs request headers by default + logs filter url + logs filter headers + does not log request body by default + does not log response body by default + logs method and url + when using log_level + logs headers on the debug level + does not log request/response body on the info level + logs request/request body on the specified level (debug) + 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 logging request body + log only request body + with custom formatter + logs with custom formatter + when logging errors + logs error message + 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 response body + log only response body + when logging request and response bodies + log request and response body + logs filter body + log response body object + without configuration + defaults to stdout + when logging headers and errors + logs error message + +Faraday::Options + #merge + deeply merges options with options having nil sub-options + deeply merges options with hashes + deeply merges options with nil + merges options with hashes + deeply merges two options + #value? + returns true if any key has that value + #dup + duplicate options but not sub-options + #deep_dup + duplicate options and also suboptions + #from + works with nil + works with options with sub object + works with hash with sub object + is expected to raise NoMethodError + works with hash + works with options + respects inheritance + works with deep hash + #each_key + allows to iterate through keys + #each_value + allows to iterate through values + #key? + returns true if the key exists and is not nil + #clear + clears the options + #fetch + when the fetched key has a value + grabs value + works with key + when the fetched key has no value + uses falsey default + needs a default if key is missing + accepts block + #delete + allows to remove value for key + #update + updates options from hashes + #empty? + returns true only if all options are nil + #memoized + accepts block + requires block + +Faraday::Request::Instrumentation + defaults to ActiveSupport::Notifications + is expected to eq "request.faraday" + instruments with default name + with custom instrumenter + is expected to eq :custom + with custom name + instruments with custom name + is expected to eq "custom" Faraday::Adapter::Test + ignoring unspecified get params + with single param + is expected to eq "a" + with multiple params + is expected to eq "a" + without params + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + can handle single parameter block + is expected to eq "get" + yielding env to stubs + is expected to eq "a" + raising an error if no stub was found + for specified host + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + for request + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + for request without specified header + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + with http headers + with header + is expected to eq "a" + without header + is expected to eq "b" + 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" + with simple path sets status + is expected to eq 200 + can handle regular expression path with captured result + is expected to eq "show specified" + can handle regular expression path + is expected to eq "show" + request timeout + when request is within timeout + is expected to eq 200 + when request is too slow + raises an exception + with simple path sets headers + is expected to eq "text/html" + different outcomes for the same request + the second request + is expected to eq "world" + the first request + is expected to eq "hello" + with get params + is expected to eq "a" + with simple path sets body + is expected to eq "hello" + 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 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 {: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 + when all flat param values are correctly set + is expected to eq 200 + can be called several times + is expected to eq "hello" strict_mode 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 headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :"x-c"=>"Hi"} + with {:authorization=>"Bearer m_ck", :user_agent=>"Unknown"} + 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 - 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 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 + 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", :user_agent=>"Unknown"} + 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", :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=>"12"} 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"} + with {:authorization=>"Bearer m_ck"} 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 @@ -1560,143 +1660,240 @@ is expected to eq 200 when trying with string body stubs is expected to eq 200 + 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 {: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=>"xyz"} + 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", :user_agent=>"My Agent", :x_special=>"special"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound 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", :"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"} + 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", :"x-c"=>"hello", :user_agent=>"Special Agent"} + 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 headers do not satisfy the strict check 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 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", :"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 {:a=>"12", :b=>"xy"} + 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 {: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"} - is expected to eq 200 - 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", :"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 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=>"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 - 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 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=>"xyz"} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - can handle regular expression path with captured result - is expected to eq "show specified" - can handle single parameter block - is expected to eq "get" - with http headers - with header - is expected to eq "a" - without header - is expected to eq "b" - yielding env to stubs - is expected to eq "a" - different outcomes for the same request - the second request - is expected to eq "world" - the first request - is expected to eq "hello" - with simple path sets body - is expected to eq "hello" - ignoring unspecified get params - with single param - is expected to eq "a" - with multiple params - is expected to eq "a" - without params - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - with simple path sets headers - is expected to eq "text/html" - can be called several times - is expected to eq "hello" - 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" with host points to the right stub is expected to eq "domain: hello" - request timeout - when request is too slow - raises an exception - when request is within timeout - is expected to eq 200 - can handle regular expression path - is expected to eq "show" - raising an error if no stub was found - for specified host - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - for request without specified header - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - for request - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - with get params - is expected to eq "a" - with simple path sets status - is expected to eq 200 - 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 - with {:a=>["x", "y"]} - 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", "z", "y"]} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound + +Faraday::Request::Json + object body with vendor json type + doesn't change content type + encodes body + object body + encodes body + adds content type + empty object body + encodes body + empty body + doesn't change body + doesn't add content type + object body with json type + encodes body + doesn't change content type + string body + doesn't change body + adds content type + no body + doesn't change body + doesn't add content type + true body + adds content type + encodes body + object body with incompatible type + doesn't change body + doesn't change content type + with encoder + when encoder is passed as an object-method pair + adds content type + calls specified JSON encoder + encodes body + when encoder is passed as object + calls specified JSON encoder's dump method + encodes body + adds content type + when encoder is not passed + encodes body + calls JSON.generate + adds content type + false body + adds content type + encodes body + +Faraday::Request + supports marshal serialization + with global request options set + is expected to eq 3 + is expected to eq 3 + is expected to eq 5 + is expected to eq 5 + and per-request options set + is expected to eq 10 + is expected to eq {:consumer_key=>"anonymous", :consumer_secret=>"xyz"} + is expected to eq "boo" + is expected to eq {:bar=>"bar", :foo=>"foo"} + is expected to eq 10 + is expected to eq 5 + is expected to eq 5 + 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 "Faraday" + is expected to eq "1.0" + is expected to eq "Faraday" + when HTTP method is post + is expected to eq :post + when setting the url on setup with a URI + is expected to eq {"a"=>"1"} + is expected to eq # + is expected to eq "http://httpbingo.org/api/foo.json?a=1" + when nothing particular is configured + is expected to eq :get + is expected to be falsey + is expected to be falsey + when setting the url on setup with a path including params + is expected to eq {"a"=>"1", "b"=>"2"} + is expected to eq "foo.json" + is expected to eq "http://httpbingo.org/api/foo.json?a=1&b=2" + 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" + +Faraday::RequestOptions + allows to set the request proxy + +Faraday::Error + .initialize + with string + is expected to be nil + is expected to be nil + is expected to be nil + is expected to eq "#>" + is expected to eq "custom message" + is expected to be nil + is expected to be nil + with response hash + is expected to be nil + is expected to be nil + is expected to eq {:status=>400} + is expected to be nil + is expected to eq "#400}>" + is expected to eq "the server responded with status 400" + is expected to eq 400 + with exception only + is expected to be nil + is expected to eq # + is expected to eq "test" + is expected to eq nil + is expected to be nil + is expected to be nil + is expected to be nil + is expected to eq "#>" + with exception string and response hash + is expected to be nil + is expected to be nil + is expected to eq {:status=>400} + is expected to eq "custom message" + is expected to eq 400 + is expected to eq "#400}>" + 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 be nil + is expected to be nil + is expected to be nil + is expected to eq "#>" + with exception and response object + is expected to eq nil + is expected to eq "test" + is expected to eq {"Content-Type"=>"application/json"} + is expected to eq # + is expected to eq #"application/json"} @status=400 @response_body={:test=>"test"}>> + is expected to eq {:test=>"test"} + is expected to eq 400 + +Faraday::ProxyOptions + allows hash access + #from + treats empty string as nil + works with no auth + works with string + defaults to http + works with nil + +Faraday::Response + is expected to eq "text/plain" + is expected to eq "yikes" + is expected to eq 404 + is expected to be truthy + is expected to be falsey + is expected to eq "text/plain" + is expected to raise RuntimeError + marshal serialization support + is expected to eq {"Content-Type"=>"text/plain"} + is expected to eq "yikes" + is expected to eq # + is expected to be nil + is expected to eq 404 + #to_hash + is expected to be a kind of Hash + is expected to eq # + is expected to eq {"Content-Type"=>"text/plain"} + is expected to eq 404 + is expected to eq "yikes" + #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::Response::RaiseError - raises Faraday::ClientError for other 4xx responses raises Faraday::ForbiddenError for 403 responses + raises Faraday::TooManyRequestsError for 429 responses + raises Faraday::NilStatusError for nil status in response raises no exception for 200 responses - raises Faraday::ResourceNotFound for 404 responses - raises Faraday::UnprocessableEntityError for 422 responses + raises Faraday::UnauthorizedError for 401 responses raises Faraday::BadRequestError for 400 responses - raises Faraday::TooManyRequestsError for 429 responses raises Faraday::ProxyAuthError for 407 responses - raises Faraday::UnauthorizedError for 401 responses - raises Faraday::NilStatusError for nil status in response + raises Faraday::ConflictError for 409 responses raises Faraday::ServerError for 500 responses raises Faraday::RequestTimeoutError for 408 responses - raises Faraday::ConflictError for 409 responses + raises Faraday::UnprocessableEntityError for 422 responses + raises Faraday::ClientError for other 4xx responses + raises Faraday::ResourceNotFound for 404 responses request info returns the request info in the exception DEFAULT_OPTION: include_request @@ -1708,577 +1905,464 @@ when RaiseError DEFAULT_OPTION (include_request: true) is used includes request info in the exception +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 + 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 + 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 + 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::Utils::Headers + #fetch + calls a block when provided + is expected to eq "application/json" + raises an error if key not found + is expected to eq "default" + is expected to eq "application/json" + is expected to eq "application/json" + is expected to be nil + is expected to eq "Invalid key" + is expected to eq false + #dig + is expected to be nil + is expected to eq "application/json" + is expected to eq "application/json" + is expected to eq "application/json" + when Content-Type is set to application/json + is expected to include "content-type" + is expected to eq "application/json" + is expected to eq ["Content-Type"] + 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 include "content-type" + is expected to eq "application/xml" + is expected to eq "application/xml" + #delete + is expected to be nil + is expected to eq "application/json" + is expected not to include "content-type" + is expected to eq 0 + #parse + when response headers include already stored keys + is expected to eq "8, 123" + when response headers include a blank line + is expected to eq "text/html" + 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"] + Faraday::FlatParamsEncoder - decodes boolean values + encodes boolean values encodes empty array in hash encodes unsorted when asked - encodes boolean values - encodes boolean values in array decodes arrays + decodes boolean values + encodes boolean values in array behaves like a params encoder - raises type error for empty string encodes nil escapes safe buffer + raises type error for empty string -Faraday::Options - #merge - deeply merges options with nil - merges options with hashes - deeply merges options with hashes - deeply merges two options - deeply merges options with options having nil sub-options - #fetch - when the fetched key has a value - grabs value - works with key - when the fetched key has no value - uses falsey default - accepts block - needs a default if key is missing - #dup - duplicate options but not sub-options - #each_key - allows to iterate through keys - #key? - returns true if the key exists and is not nil - #empty? - returns true only if all options are nil - #each_value - allows to iterate through values - #value? - returns true if any key has that value - #clear - clears the options - #memoized - accepts block - requires block - #update - updates options from hashes - #from - works with options with sub object - works with hash with sub object - respects inheritance - is expected to raise NoMethodError - works with options - works with deep hash - works with hash - works with nil - #delete - allows to remove value for key - #deep_dup - duplicate options and also suboptions +Faraday::RackBuilder + with custom handler and adapter + allows to compare handlers + locks the stack after making a request + dup stack is unlocked + when handlers are directly added or updated + adds a handler with options passed to swap + adds a handler with options passed to insert_after + adds a handler to construct adapter with options passed to insert + when having a single handler + is expected to eq [Apple] + raises an error trying to use an unregistered symbol + allows insert_after + allows insert_before + allows use + when adapter is added with named options + adds a handler to construct adapter with named options + 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::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 a middleware is added with named arguments + adds a handler to construct response adapter with options passed to response + when having two handlers + allows to delete a handler + allows to swap handlers + allows insert_after + 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 empty block + is expected to eq Faraday::Adapter::Test + is expected to be nil + when a plain adapter is added with named arguments + adds a handler to construct adapter with options passed to adapter -Faraday::RequestOptions - allows to set the request proxy +Faraday::Utils + headers parsing + parse headers for aggregated responses + URI parsing + replaces headers hash + parses with block + escapes safe buffer + parses with URI + 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 Faraday::NestedParamsEncoder - decodes nested array mixed types - encodes boolean values in array - encodes boolean values - encodes unsorted when asked - encodes empty array value + encodes nil array value encodes rack compat - decodes nested final value overrides any type - decodes hashes decodes nested ignores invalid array - encodes arrays indices when asked - encodes empty string array value + encodes boolean values + decodes arrays + encodes unsorted when asked + decodes nested array mixed types + encodes boolean values in array decodes nested arrays rack compat - decodes nested ignores repeated array notation - encodes nil array value + decodes nested final value overrides any type decodes nested subkeys dont have to be in brackets - decodes arrays decodes nested ignores malformed keys - when expecting hash but getting array + decodes nested ignores repeated array notation + encodes empty array value + encodes empty string array value + encodes arrays indices when asked + decodes hashes + when expecting array but getting hash behaves like a wrong decoding is expected to raise TypeError - when expecting nested hash but getting non nested + 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 array but getting hash + behaves like a params encoder + raises type error for empty string + escapes safe buffer + encodes nil + 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 - escapes safe buffer - encodes nil - raises type error for empty string -Faraday::Request - supports marshal serialization - when HTTP method is post - is expected to eq :post - when nothing particular is configured - is expected to be falsey - is expected to be falsey - is expected to eq :get - 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 {:bar=>"bar", :foo=>"foo"} - is expected to eq "boo" - is expected to eq 10 - is expected to eq 10 - is expected to eq {:consumer_key=>"anonymous", :consumer_secret=>"xyz"} - is expected to eq 5 - is expected to eq 5 - when setting the url on setup with a URI - is expected to eq {"a"=>"1"} - is expected to eq # - is expected to eq "http://httpbingo.org/api/foo.json?a=1" - 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 "foo.json" - is expected to eq {"a"=>1} - when setting the url on setup with a path including params - is expected to eq {"a"=>"1", "b"=>"2"} - is expected to eq "foo.json" - 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 setting the body on setup - is expected to eq "hi" - is expected to eq "hi" +Faraday::Request::UrlEncoded + ignores custom content type + does nothing without payload + works with nested keys + works with unicode + works with files + works with no headers + works with with headers + works with nested params + works with non nested params + customising default_space_encoding + uses the custom character to encode spaces + +Faraday + has a version number + proxies to default_connection + proxies methods that exist on the default_connection + uses method_missing on Faraday if there is no proxyable method + proxied methods can be accessed Faraday::Connection - 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 url and extra params - allows to override all params - allows to set params_encoder for single request - merges connection and request params - with default params encoder - supports array params in params - supports array params in url - with simple url - test_overrides_request_params - test_overrides_request_params_block_url - test_overrides_request_params_block - #dup - is expected to eq "1" - is expected to eq "text/plain" - is expected to eq # - after manual changes + .new + with custom params + is expected to eq {"a"=>1} + with custom builder + is expected to eq # + with explicit url param + behaves like initializer with url + with IPv6 address + is expected to eq "[::1]" + is expected to eq 85 + with simple url + is expected to eq {} + is expected to eq 80 + is expected to eq "http" + is expected to eq "httpbingo.org" + is expected to eq "/" + with complex url + is expected to eq {"a"=>"1"} + is expected to eq "/fish" + is expected to eq 815 + with empty block + is expected to eq 0 + with basic_auth in url + is expected to eq "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" + with custom headers + is expected to eq "Faraday" + with custom params and params in url + is expected to eq {"a"=>3, "b"=>"2"} + with implicit url param + behaves like initializer with url + with simple url + is expected to eq 80 + is expected to eq "httpbingo.org" + is expected to eq "/" + is expected to eq {} + is expected to eq "http" + with IPv6 address + is expected to eq "[::1]" + is expected to eq 85 + with complex url + is expected to eq {"a"=>"1"} + is expected to eq 815 + is expected to eq "/fish" + with ssl false is expected to be falsey - is expected to be nil - is expected to eq 1 - is expected to eq 5 + with block + is expected to eq 0 + is expected to eq "/omnom" + with verify_hostname false is expected to be falsey - is expected to eq 1 + default_connection_options + assigning a default value + behaves like default connection options + default connection uses default connection options + works with option url + works with instance connection options + default connection options persist with an instance overriding + works with implicit url + assigning a hash + behaves like default connection options + default connection uses default connection options + works with instance connection options + default connection options persist with an instance overriding + works with implicit url + 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"} + #build_url + merges params + uses params #build_exclusive_url - overrides connection port for absolute url always returns new URI instance - allows to provide params argument + overrides connection port for absolute url does not add ending slash given empty url - does not use connection params handles uri instances does not add ending slash given nil url + does not use connection params + allows to provide params argument + with url_prefixed connection + used default base with ending slash + parses url and changes scheme + joins url to base with ending slash + overrides base with a custom `default_uri_parser` does not raise error + with complete url + is expected to eq "a=1" + is expected to eq "/sake.html" + is expected to eq 80 + is expected to eq "httpbingo.org" + is expected to eq "http" 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 url_prefixed connection - used default base with ending slash - parses url and changes scheme - joins url to base with ending slash - overrides base with absolute path - example at ./spec/faraday/connection_spec.rb:206 - is expected to eq "/sake.html" + example at ./spec/faraday/connection_spec.rb:207 is expected to eq "/sake.html" is expected to eq "/sake.html" - with complete url - is expected to eq "httpbingo.org" - is expected to eq "http" is expected to eq "/sake.html" - is expected to eq "a=1" - is expected to eq 80 with relative path is expected to eq "/fish/sake.html" + uses connection host as default host 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" #respond_to? is expected to be truthy is expected to be truthy + #dup + 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 be falsey + is expected to eq 1 + is expected to eq 1 + is expected to be falsey + is expected to eq 5 + request params + with url and extra params + allows to override all params + merges connection and request params + allows to set params_encoder for single request + with simple url + test_overrides_request_params_block + test_overrides_request_params_block_url + test_overrides_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 params + supports array params in url #build_request is expected to eq ["Authorization"] + is expected to be falsey is expected to be truthy is expected to be empty - is expected to be falsey + #close + can close underlying app #to_env parses url params into query bracketizes repeated params in query - bracketizes nested params in query - escapes per spec without braketizing repeated params in query - 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 - default connection uses default connection options - works with option url - works with implicit url - works with instance connection options - default connection options persist with an instance overriding - assigning a default value - behaves like default connection options - 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 option url + escapes per spec + bracketizes nested params in query proxy support - accepts hash - accepts env without scheme - allows when url in no proxy list with url_prefix - uses env http_proxy + allows when ip address is not in no proxy list but url is + test proxy requires uri + uses processes no_proxy before https_proxy + uses env https_proxy + gives priority to manually set proxy + ignores env proxy if set that way + allows in multi element no proxy list allows when url in no proxy list - fetches no proxy from nil env + accepts uri + uses env http_proxy allows when url is not in no proxy list but ip address is + accepts http env with auth + accepts env without scheme + allows when url not in no proxy list fetches no proxy from blank env + allows when url in no proxy list with url_prefix + accepts string + fetches no proxy from nil env + does not accept uppercase env + uses processes no_proxy before http_proxy accepts hash with string uri accepts http env - allows when url not in no proxy list - test proxy requires uri - allows in multi element no proxy list - allows when ip address is not in no proxy list but url is - gives priority to manually set proxy + accepts hash allows when prefixed url is not in no proxy list allows when subdomain url is in no proxy list - uses processes no_proxy before http_proxy - accepts string - uses processes no_proxy before https_proxy - uses env https_proxy - accepts uri - does not accept uppercase env - ignores env proxy if set that way - accepts http env with auth performing a request dynamically check no proxy dynamically checks proxy - #close - can close underlying app - .new - with empty block - is expected to eq 0 - with basic_auth in url - is expected to eq "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" - with implicit url param - behaves like initializer with url - with simple url - is expected to eq "/" - is expected to eq 80 - is expected to eq {} - is expected to eq "http" - 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 {"a"=>"1"} - is expected to eq "/fish" - is expected to eq 815 - 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 builder - is expected to eq # - with custom headers - is expected to eq "Faraday" - with explicit url param - behaves like initializer with url - 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 "httpbingo.org" - is expected to eq "/" - is expected to eq "http" - is expected to eq {} - with complex url - is expected to eq {"a"=>"1"} - is expected to eq "/fish" - is expected to eq 815 - 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" - #build_url - uses params - merges params - -Faraday::Request::Instrumentation - is expected to eq "request.faraday" - instruments with default name - defaults to ActiveSupport::Notifications - with custom instrumenter - is expected to eq :custom - with custom name - instruments with custom name - is expected to eq "custom" - -Faraday::Request::UrlEncoded - works with no headers - works with nested params - works with with headers - does nothing without payload - works with non nested params - ignores custom content type - works with unicode - works with files - works with nested keys - customising default_space_encoding - uses the custom character to encode spaces - -Faraday::Adapter - #request_timeout - gets :open timeout - gets :read timeout - gets :write timeout - attempts unknown timeout type - -Faraday::Response::Logger - logs status - logs request headers by default - still returns output - does not log error message by default - logs response headers by default - logs filter url - logs filter headers - does not log request body by default - does not log response body by default - logs method and url - with custom formatter - logs with custom formatter - when not logging request headers - does not log request headers if option is false - when logging headers and errors - logs error message - 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 - logs headers on the debug level - does not log headers on the info level - logs request/request body on the specified level (debug) - with default formatter - delegates logging to the formatter - when no route - delegates logging to the formatter - when logging request and response bodies - log response body object - log request and response body - logs filter body - without configuration - defaults to stdout - when logging request body - log only request body - when logging response body - log only response body - when logging errors - logs error message - -Faraday::Utils - URI parsing - parses with URI - parses with block - replaces headers hash - escapes safe buffer - 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::Env + allows to access members allows to access symbol non members handle verify_hostname when fetching ignores false when fetching - allows to access string non members - allows to access members retains custom members + 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 + allows to access response_body + allows to access request_body + when response is not finished yet + returns the request body -Faraday::Error - .initialize - with exception and response object - is expected to eq 400 - is expected to eq nil - is expected to eq {"Content-Type"=>"application/json"} - is expected to eq {:test=>"test"} - is expected to eq # - is expected to eq #"application/json"} @status=400 @response_body={:test=>"test"}>> - is expected to eq "test" - with anything else #to_s - is expected to be nil - is expected to be nil - is expected to eq "#>" - is expected to eq "[\"error1\", \"error2\"]" - is expected to be nil - is expected to be nil - is expected to be nil - with exception only - is expected to eq "test" - 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 eq "#>" - is expected to eq nil - with string - is expected to be nil - is expected to be nil - is expected to be nil - is expected to eq "#>" - is expected to eq "custom message" - is expected to be nil - is expected to be nil - with exception string and response hash - is expected to eq "custom message" - is expected to be nil - is expected to eq 400 - is expected to eq {:status=>400} - is expected to eq "#400}>" - is expected to be nil - is expected to be nil - with response hash - is expected to be nil - is expected to be nil - is expected to eq 400 - is expected to eq "#400}>" - is expected to eq "the server responded with status 400" - is expected to eq {:status=>400} - is expected to be nil - -Faraday - has a version number - proxies to default_connection - proxies methods that exist on the default_connection - uses method_missing on Faraday if there is no proxyable method - proxied methods can be accessed - -Faraday::Utils::Headers - when Content-Type is set to application/xml - is expected to eq "application/xml" - is expected to eq "application/xml" - is expected to eq ["Content-Type"] - is expected to include "content-type" - is expected to eq "application/xml" - #parse - when response headers leave http status line out - is expected to eq "text/html" - is expected to eq ["Content-Type"] - is expected to eq "text/html" - when response headers include a blank line - is expected to eq "text/html" - 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" - #dig - is expected to eq "application/json" - is expected to eq "application/json" - is expected to eq "application/json" - is expected to be nil - #delete - is expected not to include "content-type" - is expected to be nil - is expected to eq "application/json" - is expected to eq 0 - #fetch - is expected to eq "application/json" - is expected to eq false - calls a block when provided - is expected to be nil - raises an error if key not found - is expected to eq "Invalid key" - is expected to eq "application/json" - is expected to eq "default" - is expected to eq "application/json" - when Content-Type is set to application/json - is expected to eq "application/json" - is expected to eq ["Content-Type"] - is expected to include "content-type" - is expected to eq "application/json" - is expected to eq "application/json" +Faraday::Response::Json + includes the response on the ParsingError instance + chokes on invalid json + HEAD responses + nullifies the body if it's only one space + nullifies the body if it's two spaces + with array type matching + ignores json body of incorrect type + parses json body of correct type + no type matching + doesn't change nil body + parses json body + nullifies empty body + JSON options + passes relevant options to JSON parse + 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 not passed + passes relevant options to JSON parse + passes relevant options to JSON parse even when nil responds to :load + when decoder is passed as an object-method pair + passes relevant options to specified decoder's method + when decoder is passed as object + passes relevant options to specified decoder's load method Faraday::MiddlewareRegistry - allows to register with Proc allows to register with string - allows to register with constant allows to register with symbol - -Faraday::Response - is expected to eq 404 - is expected to raise RuntimeError - is expected to eq "text/plain" - is expected to eq "text/plain" - is expected to eq "yikes" - is expected to be falsey - is expected to be truthy - #to_hash - is expected to eq {"Content-Type"=>"text/plain"} - is expected to eq 404 - is expected to be a kind of Hash - is expected to eq "yikes" - is expected to eq # - marshal serialization support - is expected to eq 404 - is expected to eq "yikes" - is expected to eq {"Content-Type"=>"text/plain"} - is expected to eq # - is expected to be nil - #on_complete - can access response body in on_complete callback - can access response body in on_complete callback - parse body on finish - #apply_request - is expected to eq "yikes" - is expected to eq :post + allows to register with constant + allows to register with Proc Faraday::Middleware + #close + with app that supports #close + should issue warning + with app that doesn't support #close + should issue warning + #on_error + is called by #call + options + when options are passed to the middleware + accepts options when initialized #on_request is called by #call ::default_options - default_options input validation - raises error if subclass option does not exist - raises error if Faraday::Middleware option does not exist - with FARADAY::MIDDLEWARE DEFAULT_OPTIONS and with Subclass DEFAULT_OPTIONS + with subclass DEFAULT_OPTIONS defined and without application options configured has only subclass defaults is expected to eq "ok" @@ -2286,73 +2370,25 @@ updates subclasses and parent independent of each other is expected to eq "ok" is expected to eq "ok" - with subclass DEFAULT_OPTIONS defined - 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 with one application's options changed - is expected to eq "ok" only updates default options of target subclass + 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 + 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" - #on_error - is called by #call - options - when options are passed to the middleware - accepts options when initialized - #close - with app that supports #close - should issue warning - with app that doesn't support #close - should issue warning - -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 - 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 - 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 - 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 a proc - is expected to eq "Bearer custom_from_proc" - and request already has an authentication header - does not interfere with existing authorization -Finished in 0.5429 seconds (files took 1.16 seconds to load) +Finished in 0.9036 seconds (files took 1.99 seconds to load) 591 examples, 0 failures -Randomized with seed 9674 +Randomized with seed 14821 Coverage report generated for RSpec to /build/reproducible-path/ruby-faraday-2.10.0/coverage. 0 / 0 LOC (100.0%) covered. [Coveralls] Outside the CI environment, not sending data. @@ -2386,12 +2422,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/53599/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/53599/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/8657 and its subdirectories -I: Current time: Tue Jan 20 12:03:20 -12 2026 -I: pbuilder-time-stamp: 1768953800 +I: removing directory /srv/workspace/pbuilder/53599 and its subdirectories +I: Current time: Thu Dec 19 07:41:40 +14 2024 +I: pbuilder-time-stamp: 1734543700