Diff of the two buildlogs: -- --- b1/build.log 2024-11-15 04:05:16.325894191 +0000 +++ b2/build.log 2024-11-15 04:06:23.154887144 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Dec 17 22:27:38 -12 2025 -I: pbuilder-time-stamp: 1766053658 +I: Current time: Fri Nov 15 18:05:18 +14 2024 +I: pbuilder-time-stamp: 1731643518 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-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/116810/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2762/tmp/hooks/D01_modify_environment starting +debug: Running on ionos2-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 Nov 15 04:05 /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/2762/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2762/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='trixie' - 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]="32" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.2.32(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=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='459b97b6c0f54ae9b407eacc9faa9c9b' - 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='116810' - PS1='# ' - PS2='> ' + INVOCATION_ID=7f8ac674a1ac48dfa1b479f7eb6bfbd0 + 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=2762 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.H9lPaCyf/pbuilderrc_SDxg --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.H9lPaCyf/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.H9lPaCyf/pbuilderrc_D3J0 --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.H9lPaCyf/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-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 4 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/116810/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 4 21:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2762/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -90,7 +122,7 @@ Depends: debhelper-compat (= 13), gem2deb, lsof, rake, ruby-faraday-net-http (<< 3.1), ruby-faraday-net-http (>= 2.0), ruby-rspec, ruby-em-http-request, ruby-em-synchrony, ruby-excon, ruby-httpclient, ruby-minitest, ruby-multipart-post, ruby-net-http-persistent (>= 3.1~), ruby-rack-test, ruby-sinatra, ruby-typhoeus (>= 1.4~), ruby-webmock, ruby-multipart-parser, ruby-ruby2-keywords, pry, ruby-simplecov, ruby-coveralls dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. -(Reading database ... 19960 files and directories currently installed.) +(Reading database ... 19959 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: @@ -373,10 +405,10 @@ Get: 214 http://deb.debian.org/debian trixie/main i386 ruby-sinatra all 3.2.0-1 [121 kB] Get: 215 http://deb.debian.org/debian trixie/main i386 ruby-typhoeus all 1.4.0-4 [36.3 kB] Get: 216 http://deb.debian.org/debian trixie/main i386 ruby-webmock all 3.23.1-1 [67.7 kB] -Fetched 52.3 MB in 1s (44.1 MB/s) +Fetched 52.3 MB in 1s (47.2 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 ... 19960 files and directories currently installed.) +(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 ... 19959 files and directories currently installed.) Preparing to unpack .../libpython3.12-minimal_3.12.7-3_i386.deb ... Unpacking libpython3.12-minimal:i386 (3.12.7-3) ... Selecting previously unselected package libexpat1:i386. @@ -389,7 +421,7 @@ Setting up libexpat1:i386 (2.6.4-1) ... Setting up python3.12-minimal (3.12.7-3) ... Selecting previously unselected package python3-minimal. -(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 ... 20280 files and directories currently installed.) +(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 ... 20279 files and directories currently installed.) Preparing to unpack .../00-python3-minimal_3.12.6-1_i386.deb ... Unpacking python3-minimal (3.12.6-1) ... Selecting previously unselected package media-types. @@ -451,7 +483,7 @@ Unpacking libpython3-stdlib:i386 (3.12.6-1) ... Setting up python3-minimal (3.12.6-1) ... Selecting previously unselected package python3. -(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 ... 21342 files and directories currently installed.) +(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 ... 21341 files and directories currently installed.) Preparing to unpack .../000-python3_3.12.6-1_i386.deb ... Unpacking python3 (3.12.6-1) ... Selecting previously unselected package sensible-utils. @@ -1087,8 +1119,8 @@ Setting up tzdata (2024b-3) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Dec 18 10:28:01 UTC 2025. -Universal Time is now: Thu Dec 18 10:28:01 UTC 2025. +Local time is now: Fri Nov 15 04:05:56 UTC 2024. +Universal Time is now: Fri Nov 15 04:05:56 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up mariadb-common (1:11.4.3-1) ... @@ -1275,7 +1307,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/2762/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/2762/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 @@ -1304,7 +1340,7 @@ dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-faraday/ -O--buildsystem=ruby dh_ruby --install /build/reproducible-path/ruby-faraday-2.10.0/debian/ruby-faraday -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20251217-2688-coh9ay/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20241115-13117-d8o728/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' @@ -1313,7 +1349,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/d20251217-2688-coh9ay/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/d20241115-13117-d8o728/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 @@ -1388,14 +1424,7 @@ 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 38564 - -Faraday::Adapter - #request_timeout - gets :open timeout - attempts unknown timeout type - gets :write timeout - gets :read timeout +Randomized with seed 38614 Faraday has a version number @@ -1404,92 +1433,98 @@ proxied methods can be accessed uses method_missing on Faraday if there is no proxyable method -Faraday::MiddlewareRegistry - allows to register with Proc - allows to register with string - allows to register with constant - allows to register with symbol - -Faraday::AdapterRegistry - #initialize - is expected to raise NameError - caches lookups with implicit name - is expected to raise NameError - caches lookups with explicit name - looks up class by string name - looks up class by symbol name - -Faraday::Utils - headers parsing - parse headers for aggregated responses - URI parsing - parses with URI - parses with block - escapes safe buffer - parses with default parser - replaces headers hash - .deep_merge! - recursively merges the headers - when a target hash has an Options Struct value - does not overwrite an Options Struct value - -Faraday::Request::Json - true body - encodes body - adds content type - object body with incompatible type - doesn't change body - doesn't change content type - string body - adds content type - doesn't change body - empty body - doesn't add content type - doesn't change body - with encoder - when encoder is not passed - encodes body - calls JSON.generate - adds content type - when encoder is passed as an object-method pair - encodes body - adds content type - calls specified JSON encoder - when encoder is passed as object - calls specified JSON encoder's dump method - adds content type - encodes body - false body - encodes body - adds content type - no body - doesn't add content type - doesn't change body - empty object body - encodes body - object body with vendor json type - encodes body - doesn't change content type - object body with json type - doesn't change content type - encodes body - object body - adds content type - encodes body +Faraday::ProxyOptions + allows hash access + #from + works with nil + defaults to http + works with no auth + treats empty string as nil + works with string Faraday::Adapter::Test - strict_mode - when params and headers are exactly set + with host points to the right stub + is expected to eq "domain: hello" + can be called several times + is expected to eq "hello" + yielding env to stubs + is expected to eq "a" + can handle regular expression path with captured result + is expected to eq "show specified" + request timeout + when request is too slow + raises an exception + when request is within timeout is expected to eq 200 - when params and headers are exactly set with a custom user agent + with http headers + with header + is expected to eq "a" + without header + is expected to eq "b" + for request with non default params encoder + when all flat param values are correctly set is expected to eq 200 - behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :"x-c"=>"Hi"} + 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", "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", "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 {:b=>["x", "y", "z"]} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + raising an error if no stub was found + for request without specified header + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + for specified host + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + for request + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + 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" + different outcomes for the same request + the first request + is expected to eq "hello" + the second request + is expected to eq "world" + with simple path sets status + is expected to eq 200 + ignoring unspecified get params + with multiple params + is expected to eq "a" + with single param + is expected to eq "a" + without params + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + strict_mode + behaves like raise NotFound when params do not satisfy the strict check + with {:a=>"12", :b=>"xyz"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent", :x_special=>"special"} + 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 {:b=>"xy"} + is expected to raise Faraday::Adapter::Test::Stubs::NotFound + body_match? + when trying with string body stubs + is expected to eq 200 + when trying without any args for body + is expected to eq 200 + when trying with proc body stubs + is expected to eq 200 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"} + 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"} is expected to eq 200 @@ -1497,852 +1532,853 @@ with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent"} is expected to eq 200 behaves like does not raise NotFound even when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck", :"x-c"=>"hello"} - 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", :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", :x_special=>"special"} + 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 {:a=>"12", :b=>"xy"} + with {:a=>"12", :b=>"xy", :c=>"hello"} 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"} + with {:additional=>"special", :a=>"12", :b=>"xy", :c=>"hello"} + is expected to eq 200 + behaves like does not raise NotFound even when headers do not satisfy the strict check + with {:authorization=>"Bearer m_ck", :user_agent=>"My Agent", :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", :"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", :user_agent=>"Unknown"} + with {:authorization=>"Bearer m_ck"} 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", :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=>"Basic m_ck", :"x-c"=>"hello"} + with {:authorization=>"Bearer m_ck", :user_agent=>"Unknown"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound behaves like raise NotFound when params do not satisfy the strict check - with {:a=>"12", :b=>"xy", :c=>"hello"} + with {:a=>"123", :b=>"xy"} + 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", :"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 behaves like raise NotFound when params do not satisfy the strict check - with {:a=>"12", :b=>"xyz"} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck"} + with {:additional=>"special", :a=>"12", :b=>"xy", :c=>"hello"} 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 with string body stubs - is expected to eq 200 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 + is expected to eq 200 behaves like raise NotFound when headers do not satisfy the strict check - with {:authorization=>"Bearer m_ck"} + 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"} + 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 {:additional=>"special", :a=>"12", :b=>"xy", :c=>"hello"} + behaves like raise NotFound when headers do not satisfy the strict check + with {:authorization=>"Bearer m_ck", :"x-c"=>"Hi"} is expected to raise Faraday::Adapter::Test::Stubs::NotFound - can handle regular expression path with captured result - is expected to eq "show specified" - params parsing - with default encoder - is expected to eq "a" - with nested encoder - is expected to eq "a" - with flat encoder - is expected to eq "a" - with simple path sets status - is expected to eq 200 - with http headers - with header - is expected to eq "a" - without header - is expected to eq "b" - yielding env to stubs + with get params is expected to eq "a" - ignoring unspecified get params - with multiple params - is expected to eq "a" - without params - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - with single param - is expected to eq "a" can handle regular expression path is expected to eq "show" - with get params - is expected to eq "a" - with host points to the right stub - is expected to eq "domain: hello" - can be called several times - is expected to eq "hello" - with simple path sets body - is expected to eq "hello" - can handle single parameter block - is expected to eq "get" - 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 headers is expected to eq "text/html" - 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", "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", "z", "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"]} - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - request timeout - when request is within timeout - is expected to eq 200 - when request is too slow - raises an exception - raising an error if no stub was found - 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 - for specified host - is expected to raise Faraday::Adapter::Test::Stubs::NotFound - -Faraday::Utils::Headers - #parse - when response headers values include a colon - is expected to eq "http://httpbingo.org/" - when response headers include a blank line - is expected to eq "text/html" - when response headers include already stored keys - is expected to eq "8, 123" - 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"] - #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/json - is expected to eq "application/json" - is expected to eq "application/json" - is expected to eq ["Content-Type"] - is expected to eq "application/json" - is expected to include "content-type" - #delete - is expected not to include "content-type" - is expected to eq 0 - is expected to eq "application/json" - is expected to be nil - #fetch - is expected to eq false - calls a block when provided - raises an error if key not found - is expected to eq "application/json" - is expected to eq "application/json" - is expected to eq "Invalid key" - is expected to be nil - is expected to eq "default" - is expected to eq "application/json" - 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" - -Faraday::Response - is expected to raise RuntimeError - 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 eq "text/plain" - #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 "yikes" - is expected to eq :post - marshal serialization support - is expected to eq "yikes" - is expected to be nil - is expected to eq # - is expected to eq {"Content-Type"=>"text/plain"} - is expected to eq 404 - #to_hash - is expected to eq {"Content-Type"=>"text/plain"} - is expected to eq "yikes" - is expected to eq 404 - is expected to eq # - is expected to be a kind of Hash - -Faraday::Response::RaiseError - raises Faraday::ClientError for other 4xx responses - raises Faraday::UnauthorizedError for 401 responses - raises Faraday::RequestTimeoutError for 408 responses - raises Faraday::ResourceNotFound for 404 responses - raises no exception for 200 responses - raises Faraday::UnprocessableEntityError for 422 responses - raises Faraday::ConflictError for 409 responses - raises Faraday::ProxyAuthError for 407 responses - raises Faraday::BadRequestError for 400 responses - raises Faraday::NilStatusError for nil status in response - raises Faraday::ServerError for 500 responses - raises Faraday::ForbiddenError for 403 responses - raises Faraday::TooManyRequestsError for 429 responses - request info - returns the request info in the exception - DEFAULT_OPTION: include_request - when RaiseError DEFAULT_OPTION (include_request: true) is used - includes request info in the exception - when application sets default_options `include_request: false` - and when include_request option is explicitly set for instance - includes request info in the exception - and when include_request option is omitted - does not include request info in the exception - -Faraday::ProxyOptions - allows hash access - #from - treats empty string as nil - works with nil - defaults to http - works with no auth - works with string + can handle single parameter block + is expected to eq "get" + with simple path sets body + is expected to eq "hello" Faraday::Response::Json chokes on invalid json includes the response on the ParsingError instance HEAD responses - nullifies the body if it's two spaces nullifies the body if it's only one space - with default regexp type matching - ignores json body of incorrect type + nullifies the body if it's two spaces + 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 preserving raw + parses json body no type matching doesn't change nil body - nullifies empty body parses json body + nullifies empty 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 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 - with preserving raw - parses json body - with array type matching - ignores json body of incorrect type - parses json body of correct type - JSON options - passes relevant options to JSON parse - -Faraday::Request::UrlEncoded - works with nested params - works with with headers - ignores custom content type - works with no headers - does nothing without payload - works with nested keys - works with unicode - works with files - works with non nested params - customising default_space_encoding - uses the custom character to encode spaces Faraday::Response::Logger - still returns output - logs request headers by default - logs response headers by default - does not log error message by default + does not log response body by default logs method and url + logs response headers by default logs filter url - does not log request body by default - logs status + logs request headers by default + does not log error message by default logs filter headers - does not log response body by default - when logging headers and errors - logs error message + logs status + does not log request body by default + still returns output with custom formatter logs with custom formatter - without configuration - defaults to stdout when logging response body log only response body + when logging request body + log only request body + when not logging response headers + does not log response headers if option is false + when logging request and response bodies + logs filter body + log request and response body + log response body object with default formatter delegates logging to the formatter when no route delegates logging to the formatter - when logging request and response bodies - log request and response body - logs filter body - log response body object - when logging request body - log only request body + without configuration + defaults to stdout + when logging headers and errors + logs error message when logging errors logs error message + when not logging request headers + does not log request headers if option is false when using log_level - logs headers on the debug level + does not log request/response body on the info level does not log headers on the info level + logs headers on the debug level logs request/request body on the specified level (debug) - does not log request/response body on the info level - when not logging response headers - does not log response headers if option is false - when not logging request headers - does not log request headers if option is false + +Faraday::Response::RaiseError + raises Faraday::ServerError for 500 responses + raises Faraday::ConflictError for 409 responses + raises Faraday::TooManyRequestsError for 429 responses + raises Faraday::ClientError for other 4xx responses + raises Faraday::ForbiddenError for 403 responses + raises Faraday::BadRequestError for 400 responses + raises Faraday::UnauthorizedError for 401 responses + raises Faraday::NilStatusError for nil status in response + raises Faraday::UnprocessableEntityError for 422 responses + raises Faraday::RequestTimeoutError for 408 responses + raises no exception for 200 responses + raises Faraday::ResourceNotFound for 404 responses + raises Faraday::ProxyAuthError for 407 responses + request info + returns the request info in the exception + DEFAULT_OPTION: include_request + when RaiseError DEFAULT_OPTION (include_request: true) is used + includes request info in the exception + when application sets default_options `include_request: false` + and when include_request option is explicitly set for instance + includes request info in the exception + and when include_request option is omitted + does not include request info in the exception + +Faraday::FlatParamsEncoder + encodes boolean values + encodes empty array in hash + decodes boolean values + encodes boolean values in array + decodes arrays + encodes unsorted when asked + behaves like a params encoder + escapes safe buffer + raises type error for empty string + encodes nil + +Faraday::Utils + headers parsing + parse headers for aggregated responses + .deep_merge! + recursively merges the headers + when a target hash has an Options Struct value + does not overwrite an Options Struct value + URI parsing + escapes safe buffer + replaces headers hash + parses with block + parses with default parser + parses with URI + +Faraday::Request::Instrumentation + defaults to ActiveSupport::Notifications + instruments with default name + is expected to eq "request.faraday" + with custom instrumenter + is expected to eq :custom + with custom name + instruments with custom name + is expected to eq "custom" Faraday::RackBuilder + with custom handler and adapter + locks the stack after making a request + dup stack is unlocked + allows to compare handlers with default stack - is expected to eq Faraday::Adapter::Test is expected to eq Faraday::Request::UrlEncoded - when middleware is added with named arguments - adds a handler to construct middleware with options passed to use - when adapter is added with named options - adds a handler to construct adapter with named options - when a middleware is added with named arguments - adds a handler to construct response adapter with options passed to response + is expected to eq Faraday::Adapter::Test with custom adapter only 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 + with custom empty block + is expected to eq Faraday::Adapter::Test + is expected to be nil when a middleware is added with named arguments - adds a handler to construct request adapter with options passed to request + adds a handler to construct response adapter with options passed to response + when adapter is added with named options + adds a handler to construct adapter with named options + when handlers are directly added or updated + adds a handler with options passed to insert_after + adds a handler to construct adapter with options passed to insert + adds a handler with options passed to swap when having two handlers - allows insert_after + allows insert_before allows to swap handlers + allows insert_after allows to delete a handler - allows insert_before + when middleware is added with named arguments + adds a handler to construct middleware with options passed to use + when a middleware is added with named arguments + adds a handler to construct request adapter with options passed to request when having a single handler - allows use raises an error trying to use an unregistered symbol - is expected to eq [Apple] + allows use allows insert_before allows insert_after - with custom empty block - is expected to be nil - is expected to eq Faraday::Adapter::Test - 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 insert_after - adds a handler to construct adapter with options passed to insert - adds a handler with options passed to swap + is expected to eq [Apple] + +Faraday::Request::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 + 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 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 + with an argument + 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 proc crunchy surprise" + and request already has an authentication header + does not interfere with existing authorization + +Faraday::Error + .initialize + with exception only + is expected to eq "#>" + is expected to be nil + 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 eq nil + with exception string and response hash + is expected to eq "custom message" + is expected to eq {:status=>400} + is expected to be nil + is expected to eq "#400}>" + is expected to eq 400 + is expected to be nil + is expected to be nil + with string + 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 "custom message" + is expected to be nil + with response hash + is expected to eq "the server responded with status 400" + is expected to eq "#400}>" + is expected to be nil + is expected to be nil + is expected to be nil + is expected to eq 400 + is expected to eq {:status=>400} + 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 and response object + is expected to eq "test" + is expected to eq {"Content-Type"=>"application/json"} + is expected to eq {:test=>"test"} + is expected to eq 400 + is expected to eq nil + is expected to eq # + is expected to eq #"application/json"} @status=400 @response_body={:test=>"test"}>> Faraday::Env - allows to access members retains custom members - handle verify_hostname when fetching + allows to access symbol non members ignores false when fetching + handle verify_hostname when fetching allows to access string non members - allows to access symbol non members + allows to access 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 -Faraday::NestedParamsEncoder - encodes boolean values in array - decodes nested ignores repeated array notation - encodes unsorted when asked - decodes nested subkeys dont have to be in brackets - decodes arrays - encodes nil array value - encodes empty array value - decodes hashes - decodes nested ignores invalid array - encodes arrays indices when asked - encodes rack compat - decodes nested arrays rack compat - decodes nested ignores malformed keys - decodes nested final value overrides any type - encodes boolean values - decodes nested array mixed types - encodes empty string array value - when expecting hash but getting array - 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 array but getting string - 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 - behaves like a params encoder - encodes nil - raises type error for empty string - escapes safe buffer +Faraday::Utils::Headers + #fetch + is expected to eq "application/json" + is expected to eq false + is expected to eq "Invalid key" + is expected to eq "default" + raises an error if key not found + is expected to eq "application/json" + calls a block when provided + is expected to eq "application/json" + is expected to be nil + #parse + 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" + when response headers include a blank line + is expected to eq "text/html" + #delete + is expected to eq "application/json" + is expected to eq 0 + is expected to be nil + is expected not to include "content-type" + when Content-Type is set to application/xml + is expected to include "content-type" + is expected to eq "application/xml" + is expected to eq "application/xml" + is expected to eq "application/xml" + is expected to eq ["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 ["Content-Type"] + is expected to eq "application/json" + is expected to eq "application/json" + #dig + is expected to eq "application/json" + is expected to eq "application/json" + is expected to be nil + is expected to eq "application/json" -Faraday::Options - #merge - deeply merges options with nil - deeply merges options with hashes - deeply merges two options - deeply merges options with options having nil sub-options - merges options with hashes - #dup - duplicate options but not sub-options - #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 - requires block - accepts block - #each_key - allows to iterate through keys - #fetch - when the fetched key has a value - grabs value - works with key - when the fetched key has no value - accepts block - uses falsey default - needs a default if key is missing - #deep_dup - duplicate options and also suboptions - #from - works with nil - works with hash - works with options - is expected to raise NoMethodError - works with hash with sub object - works with options with sub object - works with deep hash - respects inheritance - #update - updates options from hashes - #delete - allows to remove value for key +Faraday::Request::UrlEncoded + works with unicode + ignores custom content type + works with files + does nothing without payload + works with with headers + works with nested keys + works with no headers + works with nested params + works with non nested params + customising default_space_encoding + uses the custom character to encode spaces -Faraday::Connection - proxy support - accepts http env - allows in multi element no proxy list - ignores env proxy if set that way - uses env http_proxy - uses processes no_proxy before http_proxy - accepts uri - fetches no proxy from nil env - accepts string - allows when url not in no proxy list - accepts http env with auth - allows when subdomain url is in no proxy list - test proxy requires uri - allows when ip address is not in no proxy list but url is - allows when url in no proxy list - allows when url in no proxy list with url_prefix - fetches no proxy from blank env - uses processes no_proxy before https_proxy - accepts hash with string uri - gives priority to manually set proxy - accepts hash - accepts env without scheme - uses env https_proxy - allows when url is not in no proxy list but ip address is - does not accept uppercase env - allows when prefixed url is not in no proxy list - performing a request - dynamically check no proxy - dynamically checks proxy +Faraday::AdapterRegistry + #initialize + caches lookups with implicit name + looks up class by string name + is expected to raise NameError + is expected to raise NameError + caches lookups with explicit name + looks up class by symbol name + +Faraday::Middleware + options + when options are passed to the middleware + accepts options when initialized + #on_error + is called by #call + ::default_options + with subclass DEFAULT_OPTIONS defined + and without application options configured + has only subclass defaults + is expected to eq "ok" + and with one application's options changed + only updates default options of target subclass + is expected to eq "ok" + and with two applications' options changed + updates subclasses and parent independent of each other + is expected to eq "ok" + is expected to eq "ok" + 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 + updates subclasses and parent independent of each other + is expected to eq "ok" + 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 #close - can close underlying app + with app that supports #close + should issue warning + with app that doesn't support #close + should issue warning + +Faraday::Request::Json + object body with incompatible type + doesn't change content type + doesn't change body + object body with vendor json type + doesn't change content type + encodes body + true body + encodes body + adds content type + false body + adds content type + encodes body + no body + doesn't change body + doesn't add content type + empty object body + encodes body + empty body + doesn't change body + doesn't add content type + with encoder + when encoder is passed as an object-method pair + calls specified JSON encoder + encodes body + adds content type + when encoder is not passed + encodes body + adds content type + calls JSON.generate + when encoder is passed as object + encodes body + calls specified JSON encoder's dump method + adds content type + object body with json type + doesn't change content type + encodes body + object body + encodes body + adds content type + string body + doesn't change body + adds content type + +Faraday::RequestOptions + allows to set the request proxy + +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 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 5 + is expected to eq 10 + is expected to eq 10 + is expected to eq {:bar=>"bar", :foo=>"foo"} + is expected to eq "boo" + is expected to eq {:consumer_key=>"anonymous", :consumer_secret=>"xyz"} + is expected to eq 5 + 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 {"a"=>"1"} + is expected to eq # + 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 {"a"=>"1", "b"=>"2"} + is expected to eq "http://httpbingo.org/api/foo.json?a=1&b=2" + when setting the body on setup + is expected to eq "hi" + is expected to eq "hi" + 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" + +Faraday::Connection + #to_env + bracketizes repeated params in query + without braketizing repeated params in query + bracketizes nested params in query + escapes per spec + parses url params into query + request params + with url and extra params + merges connection and request params + allows to override all params + allows to set params_encoder for single request + with flat params encoder + supports array params in params + with array param in url + example at ./spec/faraday/connection_spec.rb:802 + with default params encoder + supports array params in url + supports array params in params + with simple url + test_overrides_request_params_block + test_overrides_request_params + test_overrides_request_params_block_url + #build_url + merges params + uses params .new - with block + with empty block is expected to eq 0 + with block is expected to eq "/omnom" + is expected to eq 0 with basic_auth in url is expected to eq "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" - with empty block - is expected to eq 0 - with custom headers - is expected to eq "Faraday" - with ssl false + 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 "http" + is expected to eq 80 + is expected to eq "/" + is expected to eq {} + is expected to eq "httpbingo.org" + with complex url + is expected to eq {"a"=>"1"} + is expected to eq "/fish" + is expected to eq 815 + with verify_hostname false is expected to be falsey with custom builder - is expected to eq # + is expected to eq # with custom params is expected to eq {"a"=>1} with custom params and params in url is expected to eq {"a"=>3, "b"=>"2"} - with explicit url param + with implicit 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 "/fish" with simple url + is expected to eq {} is expected to eq 80 is expected to eq "/" - is expected to eq {} - is expected to eq "httpbingo.org" - is expected to eq "http" - with implicit url param - behaves like initializer with url - with complex url - is expected to eq "/fish" - is expected to eq 815 - is expected to eq {"a"=>"1"} - with simple url is expected to eq "http" - is expected to eq 80 is expected to eq "httpbingo.org" - is expected to eq {} - is expected to eq "/" - with IPv6 address - is expected to eq 85 - is expected to eq "[::1]" - with verify_hostname false + with custom headers + is expected to eq "Faraday" + with ssl false is expected to be falsey - #build_url - uses params - merges params - default_connection_options - assigning a default value - behaves like default connection options - works with option url - default connection options persist with an instance overriding - default connection uses default connection options - works with implicit url - works with instance connection options - 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 - 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"} #respond_to? is expected to be truthy is expected to be truthy - #build_request - is expected to be truthy - is expected to be empty - is expected to eq ["Authorization"] - is expected to be falsey #dup - is expected to eq "1" 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 be falsey - is expected to be falsey is expected to eq 5 + is expected to eq 1 is expected to be nil is expected to eq 1 - request params - with url and extra params - merges connection and request params - allows to override all params - allows to set params_encoder for single request - with flat params encoder - supports array params in params - with array param in url - example at ./spec/faraday/connection_spec.rb:802 - with simple url - test_overrides_request_params - test_overrides_request_params_block_url - test_overrides_request_params_block - with default params encoder - supports array params in url - supports array params in params + is expected to be falsey + is expected to be falsey + #build_request + is expected to be falsey + is expected to be empty + is expected to eq ["Authorization"] + is expected to be truthy #build_exclusive_url - overrides connection port for absolute url - does not add ending slash given nil url - handles uri instances allows to provide params argument always returns new URI instance - does not add ending slash given empty url + does not add ending slash given nil url does not use connection params + handles uri instances + does not add ending slash given empty url + overrides connection port for absolute url with a custom `default_uri_parser` does not raise error - with absolute path - example at ./spec/faraday/connection_spec.rb:205 - is expected to eq "/sake.html" - is expected to eq "/sake.html" - is expected to eq "/sake.html" with url_prefixed connection + joins url to base with ending slash overrides base used default base with ending slash parses url and changes scheme - joins url to base with ending slash - with colon in path - joins url to base when used relative path - joins url to base when used absolute path - joins url to base when used with path prefix - with complete url + with absolute path + example at ./spec/faraday/connection_spec.rb:206 is expected to eq "/sake.html" + is expected to eq "/sake.html" + is expected to eq "/sake.html" + with complete url + is expected to eq "a=1" is expected to eq 80 + is expected to eq "/sake.html" is expected to eq "httpbingo.org" - is expected to eq "a=1" is expected to eq "http" + with colon in path + joins url to base when used absolute path + joins url to base when used with path prefix + joins url to base when used relative path with relative path - uses connection host as default host - is expected to eq "/fish/sake.html" is expected to eq "/sake.html" is expected to eq "/fish/sake.html" + uses connection host as default host is expected to eq "/fish/sake.html" - #to_env - bracketizes repeated params in query - escapes per spec - bracketizes nested params in query - parses url params into query - without braketizing repeated params in query + is expected to eq "/fish/sake.html" + default_connection_options + 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 default value + behaves like default connection options + default connection uses default connection options + works with instance connection options + works with implicit url + default connection options persist with an instance overriding + works with option url + assigning a hash + behaves like default connection options + works with implicit url + works with option url + works with instance connection options + default connection uses default connection options + default connection options persist with an instance overriding + proxy support + ignores env proxy if set that way + accepts hash + does not accept uppercase env + allows when subdomain url is in no proxy list + allows when ip address is not in no proxy list but url is + uses processes no_proxy before http_proxy + fetches no proxy from blank env + uses processes no_proxy before https_proxy + accepts hash with string uri + test proxy requires uri + allows when url in no proxy list with url_prefix + allows when url is not in no proxy list but ip address is + allows when prefixed url is not in no proxy list + accepts http env + allows when url not in no proxy list + uses env https_proxy + gives priority to manually set proxy + accepts string + allows in multi element no proxy list + allows when url in no proxy list + accepts env without scheme + accepts http env with auth + accepts uri + uses env http_proxy + fetches no proxy from nil env + performing a request + dynamically check no proxy + dynamically checks proxy + #close + can close underlying app -Faraday::RequestOptions - allows to set the request proxy +Faraday::Adapter + #request_timeout + gets :open timeout + gets :write timeout + attempts unknown timeout type + gets :read timeout -Faraday::Middleware - #close - with app that supports #close - should issue warning - with app that doesn't support #close - should issue warning - #on_request - is called by #call - #on_error - is called by #call - 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 one application's options changed - only updates default options of target subclass - is expected to eq "ok" - and with two applications' options changed - is expected to eq "ok" - is expected to eq "ok" - updates subclasses and parent independent of each other - 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 - updates subclasses and parent independent of each other - is expected to eq "ok" - is expected to eq "ok" +Faraday::Options + #merge + deeply merges options with options having nil sub-options + deeply merges options with nil + merges options with hashes + deeply merges options with hashes + deeply merges two options + #key? + returns true if the key exists and is not nil + #dup + duplicate options but not sub-options + #empty? + returns true only if all options are nil + #memoized + accepts block + requires block + #delete + allows to remove value for key + #fetch + when the fetched key has no value + needs a default if key is missing + accepts block + uses falsey default + when the fetched key has a value + works with key + grabs value + #each_key + allows to iterate through keys + #each_value + allows to iterate through values + #value? + returns true if any key has that value + #from + works with nil + respects inheritance + works with deep hash + works with options + works with hash + works with options with sub object + is expected to raise NoMethodError + works with hash with sub object + #update + updates options from hashes + #deep_dup + duplicate options and also suboptions + #clear + clears the options -Faraday::FlatParamsEncoder - encodes empty array in hash +Faraday::Response + is expected to eq "text/plain" + is expected to eq 404 + is expected to eq "yikes" + is expected to be truthy + is expected to eq "text/plain" + is expected to be falsey + is expected to raise RuntimeError + #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 eq 404 + is expected to eq # + is expected to eq "yikes" + is expected to be nil + is expected to eq {"Content-Type"=>"text/plain"} + #apply_request + is expected to eq "yikes" + is expected to eq :post + #to_hash + is expected to be a kind of Hash + is expected to eq "yikes" + is expected to eq 404 + is expected to eq {"Content-Type"=>"text/plain"} + is expected to eq # + +Faraday::MiddlewareRegistry + allows to register with constant + allows to register with symbol + allows to register with Proc + allows to register with string + +Faraday::NestedParamsEncoder + decodes nested ignores malformed keys + encodes unsorted when asked + decodes nested subkeys dont have to be in brackets + encodes boolean values decodes arrays + encodes rack compat + encodes empty array value encodes boolean values in array - encodes boolean values - decodes boolean values - encodes unsorted when asked + decodes nested ignores repeated array notation + decodes nested ignores invalid array + decodes nested arrays rack compat + decodes nested array mixed types + encodes arrays indices when asked + encodes nil array value + decodes nested final value overrides any type + encodes empty string array value + decodes hashes + 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 behaves like a params encoder escapes safe buffer - encodes nil raises type error for empty string + encodes nil + 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::Request::Instrumentation - instruments with default name - is expected to eq "request.faraday" - defaults to ActiveSupport::Notifications - 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 URI - is expected to eq # - is expected to eq {"a"=>"1"} - 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 {"a"=>1} - is expected to eq "foo.json" - 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 "boo" - is expected to eq 10 - is expected to eq {:bar=>"bar", :foo=>"foo"} - is expected to eq 5 - is expected to eq {:consumer_key=>"anonymous", :consumer_secret=>"xyz"} - is expected to eq 5 - when nothing particular is configured - is expected to be falsey - is expected to eq :get - is expected to be falsey - when setting a header on setup with []= syntax - is expected to eq "Faraday" - is expected to eq "Faraday" - is expected to eq "1.0" - when setting the body on setup - is expected to eq "hi" - is expected to eq "hi" - when setting the url on setup with a path including params - is expected to eq {"a"=>"1", "b"=>"2"} - is expected to eq "http://httpbingo.org/api/foo.json?a=1&b=2" - is expected to eq "foo.json" - when HTTP method is post - is expected to eq :post - -Faraday::Request::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 - 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 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 string - is expected to eq "Bearer custom" - and request already has an authentication header - does not interfere with existing authorization - -Faraday::Error - .initialize - with response hash - is expected to eq 400 - is expected to eq "the server responded with status 400" - 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}>" - 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 be nil - is expected to eq 400 - is expected to eq {:status=>400} - is expected to be nil - with exception and response object - is expected to eq {:test=>"test"} - is expected to eq # - is expected to eq nil - is expected to eq 400 - is expected to eq "test" - is expected to eq {"Content-Type"=>"application/json"} - is expected to eq #"application/json"} @status=400 @response_body={:test=>"test"}>, @on_complete_callbacks=[]> - with exception only - is expected to be nil - is expected to be nil - is expected to eq "test" - is expected to eq nil - is expected to be nil - is expected to eq # - is expected to be nil - is expected to eq "#>" - with anything else #to_s - is expected to be nil - 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 - with string - is expected to be nil - is expected to eq "custom message" - is expected to be nil - is expected to be nil - is expected to eq "#>" - is expected to be nil - is expected to be nil - -Finished in 0.55775 seconds (files took 1.1 seconds to load) +Finished in 0.84866 seconds (files took 1.95 seconds to load) 591 examples, 0 failures -Randomized with seed 38564 +Randomized with seed 38614 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. @@ -2376,12 +2412,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/2762/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2762/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/116810 and its subdirectories -I: Current time: Wed Dec 17 22:28:14 -12 2025 -I: pbuilder-time-stamp: 1766053694 +I: removing directory /srv/workspace/pbuilder/2762 and its subdirectories +I: Current time: Fri Nov 15 18:06:22 +14 2024 +I: pbuilder-time-stamp: 1731643582