Diff of the two buildlogs: -- --- b1/build.log 2021-08-02 07:12:53.830626762 +0000 +++ b2/build.log 2021-08-02 07:14:38.462712813 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Aug 1 19:10:22 -12 2021 -I: pbuilder-time-stamp: 1627888222 +I: Current time: Mon Aug 2 21:13:01 +14 2021 +I: pbuilder-time-stamp: 1627888381 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration @@ -16,8 +16,8 @@ I: copying [./ruby-factory-bot_5.1.1-1.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' -gpgv: keyblock resource '/tmp/dpkg-verify-sig.U49LaoXU/trustedkeys.kbx': General error -gpgv: Signature made Mon Feb 3 03:39:04 2020 -12 +gpgv: keyblock resource '/tmp/dpkg-verify-sig.Dt5P6ioD/trustedkeys.kbx': General error +gpgv: Signature made Tue Feb 4 05:39:04 2020 +14 gpgv: using EDDSA key C47EBFCC4E57E9FC32CA3400461BEE5D240A9E91 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./ruby-factory-bot_5.1.1-1.dsc @@ -29,135 +29,169 @@ dpkg-source: info: applying 0004-Fix-failing-tests-with-rails-5.2.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/8153/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/8836/tmp/hooks/D01_modify_environment starting +debug: Running on virt32a. +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 +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by 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/8836/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/8836/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=3' - DISTRIBUTION='' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="1" [2]="4" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.1.4(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=4' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='9710d6901b0740219debde461378be0b' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='8153' - PS1='# ' - PS2='> ' + INVOCATION_ID=5506a253574047a8b86a59bf9f5e6e92 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + 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=8836 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/tmp.P0bjM7MegT/pbuilderrc_Vb54 --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.P0bjM7MegT/b1 --logfile b1/build.log ruby-factory-bot_5.1.1-1.dsc' - SUDO_GID='114' - SUDO_UID='110' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:8000/' + 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/tmp.P0bjM7MegT/pbuilderrc_N29J --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.P0bjM7MegT/b2 --logfile b2/build.log --extrapackages usrmerge ruby-factory-bot_5.1.1-1.dsc' + SUDO_GID=113 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:8000/ I: uname -a - Linux jtx1b 5.10.0-8-arm64 #1 SMP Debian 5.10.46-3 (2021-07-28) aarch64 GNU/Linux + Linux i-capture-the-hostname 5.10.0-8-armmp-lpae #1 SMP Debian 5.10.46-3 (2021-07-28) armv7l GNU/Linux I: ls -l /bin total 3580 - -rwxr-xr-x 1 root root 816764 Jun 21 14:26 bash - -rwxr-xr-x 3 root root 26052 Jul 20 2020 bunzip2 - -rwxr-xr-x 3 root root 26052 Jul 20 2020 bzcat - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Jul 20 2020 bzdiff - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Sep 4 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Jul 20 2020 bzgrep - -rwxr-xr-x 3 root root 26052 Jul 20 2020 bzip2 - -rwxr-xr-x 1 root root 9636 Jul 20 2020 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 20 2020 bzmore - -rwxr-xr-x 1 root root 26668 Sep 22 2020 cat - -rwxr-xr-x 1 root root 43104 Sep 22 2020 chgrp - -rwxr-xr-x 1 root root 38984 Sep 22 2020 chmod - -rwxr-xr-x 1 root root 43112 Sep 22 2020 chown - -rwxr-xr-x 1 root root 92616 Sep 22 2020 cp - -rwxr-xr-x 1 root root 75524 Dec 10 2020 dash - -rwxr-xr-x 1 root root 75880 Sep 22 2020 date - -rwxr-xr-x 1 root root 55436 Sep 22 2020 dd - -rwxr-xr-x 1 root root 59912 Sep 22 2020 df - -rwxr-xr-x 1 root root 96764 Sep 22 2020 dir - -rwxr-xr-x 1 root root 55012 Jul 28 07:09 dmesg - lrwxrwxrwx 1 root root 8 Nov 6 2019 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Nov 6 2019 domainname -> hostname - -rwxr-xr-x 1 root root 22508 Sep 22 2020 echo - -rwxr-xr-x 1 root root 28 Nov 9 2020 egrep - -rwxr-xr-x 1 root root 22496 Sep 22 2020 false - -rwxr-xr-x 1 root root 28 Nov 9 2020 fgrep - -rwxr-xr-x 1 root root 47492 Jul 28 07:09 findmnt - -rwsr-xr-x 1 root root 26076 Feb 26 04:12 fusermount - -rwxr-xr-x 1 root root 124508 Nov 9 2020 grep - -rwxr-xr-x 2 root root 2346 Mar 2 11:30 gunzip - -rwxr-xr-x 1 root root 6376 Mar 2 11:30 gzexe - -rwxr-xr-x 1 root root 64212 Mar 2 11:30 gzip - -rwxr-xr-x 1 root root 13784 Nov 6 2019 hostname - -rwxr-xr-x 1 root root 43180 Sep 22 2020 ln - -rwxr-xr-x 1 root root 35068 Feb 7 2020 login - -rwxr-xr-x 1 root root 96764 Sep 22 2020 ls - -rwxr-xr-x 1 root root 99940 Jul 28 07:09 lsblk - -rwxr-xr-x 1 root root 51408 Sep 22 2020 mkdir - -rwxr-xr-x 1 root root 43184 Sep 22 2020 mknod - -rwxr-xr-x 1 root root 30780 Sep 22 2020 mktemp - -rwxr-xr-x 1 root root 34408 Jul 28 07:09 more - -rwsr-xr-x 1 root root 34400 Jul 28 07:09 mount - -rwxr-xr-x 1 root root 9824 Jul 28 07:09 mountpoint - -rwxr-xr-x 1 root root 88524 Sep 22 2020 mv - lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 18 03:38 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 26652 Sep 22 2020 pwd - lrwxrwxrwx 1 root root 4 Jun 21 14:26 rbash -> bash - -rwxr-xr-x 1 root root 30740 Sep 22 2020 readlink - -rwxr-xr-x 1 root root 43104 Sep 22 2020 rm - -rwxr-xr-x 1 root root 30732 Sep 22 2020 rmdir - -rwxr-xr-x 1 root root 14144 Sep 27 2020 run-parts - -rwxr-xr-x 1 root root 76012 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jul 25 21:29 sh -> dash - -rwxr-xr-x 1 root root 22532 Sep 22 2020 sleep - -rwxr-xr-x 1 root root 55360 Sep 22 2020 stty - -rwsr-xr-x 1 root root 46704 Jul 28 07:09 su - -rwxr-xr-x 1 root root 22532 Sep 22 2020 sync - -rwxr-xr-x 1 root root 340872 Feb 16 21:55 tar - -rwxr-xr-x 1 root root 9808 Sep 27 2020 tempfile - -rwxr-xr-x 1 root root 67696 Sep 22 2020 touch - -rwxr-xr-x 1 root root 22496 Sep 22 2020 true - -rwxr-xr-x 1 root root 9636 Feb 26 04:12 ulockmgr_server - -rwsr-xr-x 1 root root 22108 Jul 28 07:09 umount - -rwxr-xr-x 1 root root 22520 Sep 22 2020 uname - -rwxr-xr-x 2 root root 2346 Mar 2 11:30 uncompress - -rwxr-xr-x 1 root root 96764 Sep 22 2020 vdir - -rwxr-xr-x 1 root root 38512 Jul 28 07:09 wdctl - lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Mar 2 11:30 zcat - -rwxr-xr-x 1 root root 1678 Mar 2 11:30 zcmp - -rwxr-xr-x 1 root root 5880 Mar 2 11:30 zdiff - -rwxr-xr-x 1 root root 29 Mar 2 11:30 zegrep - -rwxr-xr-x 1 root root 29 Mar 2 11:30 zfgrep - -rwxr-xr-x 1 root root 2081 Mar 2 11:30 zforce - -rwxr-xr-x 1 root root 7585 Mar 2 11:30 zgrep - -rwxr-xr-x 1 root root 2206 Mar 2 11:30 zless - -rwxr-xr-x 1 root root 1842 Mar 2 11:30 zmore - -rwxr-xr-x 1 root root 4553 Mar 2 11:30 znew -I: user script /srv/workspace/pbuilder/8153/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 816764 Jun 22 16:26 bash + -rwxr-xr-x 3 root root 26052 Jul 21 2020 bunzip2 + -rwxr-xr-x 3 root root 26052 Jul 21 2020 bzcat + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Jul 21 2020 bzdiff + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Sep 5 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Jul 21 2020 bzgrep + -rwxr-xr-x 3 root root 26052 Jul 21 2020 bzip2 + -rwxr-xr-x 1 root root 9636 Jul 21 2020 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 21 2020 bzmore + -rwxr-xr-x 1 root root 26668 Sep 23 2020 cat + -rwxr-xr-x 1 root root 43104 Sep 23 2020 chgrp + -rwxr-xr-x 1 root root 38984 Sep 23 2020 chmod + -rwxr-xr-x 1 root root 43112 Sep 23 2020 chown + -rwxr-xr-x 1 root root 92616 Sep 23 2020 cp + -rwxr-xr-x 1 root root 75524 Dec 11 2020 dash + -rwxr-xr-x 1 root root 75880 Sep 23 2020 date + -rwxr-xr-x 1 root root 55436 Sep 23 2020 dd + -rwxr-xr-x 1 root root 59912 Sep 23 2020 df + -rwxr-xr-x 1 root root 96764 Sep 23 2020 dir + -rwxr-xr-x 1 root root 55012 Jul 29 09:09 dmesg + lrwxrwxrwx 1 root root 8 Nov 8 2019 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Nov 8 2019 domainname -> hostname + -rwxr-xr-x 1 root root 22508 Sep 23 2020 echo + -rwxr-xr-x 1 root root 28 Nov 10 2020 egrep + -rwxr-xr-x 1 root root 22496 Sep 23 2020 false + -rwxr-xr-x 1 root root 28 Nov 10 2020 fgrep + -rwxr-xr-x 1 root root 47492 Jul 29 09:09 findmnt + -rwsr-xr-x 1 root root 26076 Feb 27 06:12 fusermount + -rwxr-xr-x 1 root root 124508 Nov 10 2020 grep + -rwxr-xr-x 2 root root 2346 Mar 3 13:30 gunzip + -rwxr-xr-x 1 root root 6376 Mar 3 13:30 gzexe + -rwxr-xr-x 1 root root 64212 Mar 3 13:30 gzip + -rwxr-xr-x 1 root root 13784 Nov 8 2019 hostname + -rwxr-xr-x 1 root root 43180 Sep 23 2020 ln + -rwxr-xr-x 1 root root 35068 Feb 8 2020 login + -rwxr-xr-x 1 root root 96764 Sep 23 2020 ls + -rwxr-xr-x 1 root root 99940 Jul 29 09:09 lsblk + -rwxr-xr-x 1 root root 51408 Sep 23 2020 mkdir + -rwxr-xr-x 1 root root 43184 Sep 23 2020 mknod + -rwxr-xr-x 1 root root 30780 Sep 23 2020 mktemp + -rwxr-xr-x 1 root root 34408 Jul 29 09:09 more + -rwsr-xr-x 1 root root 34400 Jul 29 09:09 mount + -rwxr-xr-x 1 root root 9824 Jul 29 09:09 mountpoint + -rwxr-xr-x 1 root root 88524 Sep 23 2020 mv + lrwxrwxrwx 1 root root 8 Nov 8 2019 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 19 05:38 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 26652 Sep 23 2020 pwd + lrwxrwxrwx 1 root root 4 Jun 22 16:26 rbash -> bash + -rwxr-xr-x 1 root root 30740 Sep 23 2020 readlink + -rwxr-xr-x 1 root root 43104 Sep 23 2020 rm + -rwxr-xr-x 1 root root 30732 Sep 23 2020 rmdir + -rwxr-xr-x 1 root root 14144 Sep 28 2020 run-parts + -rwxr-xr-x 1 root root 76012 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Aug 2 21:13 sh -> bash + lrwxrwxrwx 1 root root 4 Jul 26 23:24 sh.distrib -> dash + -rwxr-xr-x 1 root root 22532 Sep 23 2020 sleep + -rwxr-xr-x 1 root root 55360 Sep 23 2020 stty + -rwsr-xr-x 1 root root 46704 Jul 29 09:09 su + -rwxr-xr-x 1 root root 22532 Sep 23 2020 sync + -rwxr-xr-x 1 root root 340872 Feb 17 23:55 tar + -rwxr-xr-x 1 root root 9808 Sep 28 2020 tempfile + -rwxr-xr-x 1 root root 67696 Sep 23 2020 touch + -rwxr-xr-x 1 root root 22496 Sep 23 2020 true + -rwxr-xr-x 1 root root 9636 Feb 27 06:12 ulockmgr_server + -rwsr-xr-x 1 root root 22108 Jul 29 09:09 umount + -rwxr-xr-x 1 root root 22520 Sep 23 2020 uname + -rwxr-xr-x 2 root root 2346 Mar 3 13:30 uncompress + -rwxr-xr-x 1 root root 96764 Sep 23 2020 vdir + -rwxr-xr-x 1 root root 38512 Jul 29 09:09 wdctl + lrwxrwxrwx 1 root root 8 Nov 8 2019 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Mar 3 13:30 zcat + -rwxr-xr-x 1 root root 1678 Mar 3 13:30 zcmp + -rwxr-xr-x 1 root root 5880 Mar 3 13:30 zdiff + -rwxr-xr-x 1 root root 29 Mar 3 13:30 zegrep + -rwxr-xr-x 1 root root 29 Mar 3 13:30 zfgrep + -rwxr-xr-x 1 root root 2081 Mar 3 13:30 zforce + -rwxr-xr-x 1 root root 7585 Mar 3 13:30 zgrep + -rwxr-xr-x 1 root root 2206 Mar 3 13:30 zless + -rwxr-xr-x 1 root root 1842 Mar 3 13:30 zmore + -rwxr-xr-x 1 root root 4553 Mar 3 13:30 znew +I: user script /srv/workspace/pbuilder/8836/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -352,7 +386,7 @@ Get: 141 http://deb.debian.org/debian bullseye/main armhf ruby-rspec-its all 1.3.0-1 [6864 B] Get: 142 http://deb.debian.org/debian bullseye/main armhf ruby-sqlite3 armhf 1.4.2-3 [42.1 kB] Get: 143 http://deb.debian.org/debian bullseye/main armhf ruby-timecop all 0.9.1-1 [10.2 kB] -Fetched 43.4 MB in 6s (7130 kB/s) +Fetched 43.4 MB in 5s (9103 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package bsdextrautils. (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 ... 19398 files and directories currently installed.) @@ -948,8 +982,45 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + libfile-find-rule-perl libnumber-compare-perl libtext-glob-perl +The following NEW packages will be installed: + libfile-find-rule-perl libnumber-compare-perl libtext-glob-perl usrmerge +0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. +Need to get 59.5 kB of archives. +After this operation, 157 kB of additional disk space will be used. +Get:1 http://deb.debian.org/debian bullseye/main armhf libnumber-compare-perl all 0.03-1.1 [6956 B] +Get:2 http://deb.debian.org/debian bullseye/main armhf libtext-glob-perl all 0.11-1 [8888 B] +Get:3 http://deb.debian.org/debian bullseye/main armhf libfile-find-rule-perl all 0.34-1 [30.6 kB] +Get:4 http://deb.debian.org/debian bullseye/main armhf usrmerge all 25 [13.0 kB] +debconf: delaying package configuration, since apt-utils is not installed +Fetched 59.5 kB in 0s (979 kB/s) +Selecting previously unselected package libnumber-compare-perl. +(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 ... 27781 files and directories currently installed.) +Preparing to unpack .../libnumber-compare-perl_0.03-1.1_all.deb ... +Unpacking libnumber-compare-perl (0.03-1.1) ... +Selecting previously unselected package libtext-glob-perl. +Preparing to unpack .../libtext-glob-perl_0.11-1_all.deb ... +Unpacking libtext-glob-perl (0.11-1) ... +Selecting previously unselected package libfile-find-rule-perl. +Preparing to unpack .../libfile-find-rule-perl_0.34-1_all.deb ... +Unpacking libfile-find-rule-perl (0.34-1) ... +Selecting previously unselected package usrmerge. +Preparing to unpack .../archives/usrmerge_25_all.deb ... +Unpacking usrmerge (25) ... +Setting up libtext-glob-perl (0.11-1) ... +Setting up libnumber-compare-perl (0.03-1.1) ... +Setting up libfile-find-rule-perl (0.34-1) ... +Setting up usrmerge (25) ... +The system has been successfully converted. +Processing triggers for man-db (2.9.4-2) ... +Not building database; man-db/auto-update is not 'true'. I: Building the package -I: Running cd /build/ruby-factory-bot-5.1.1/ && 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-factory-bot_5.1.1-1_source.changes +hostname: Name or service not known +I: Running cd /build/ruby-factory-bot-5.1.1/ && 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-factory-bot_5.1.1-1_source.changes dpkg-buildpackage: info: source package ruby-factory-bot dpkg-buildpackage: info: source version 5.1.1-1 dpkg-buildpackage: info: source distribution unstable @@ -1001,57 +1072,57 @@ └──────────────────────────────────────────────────────────────────────────────┘ install -d /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/evaluator_class_definer.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/evaluator_class_definer.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/declaration_list.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/declaration_list.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/aliases.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/aliases.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/syntax.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/syntax.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/errors.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/errors.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/evaluation.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/evaluation.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/sequence.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/sequence.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/declaration/dynamic.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/declaration/dynamic.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/declaration/implicit.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/declaration/implicit.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/declaration/association.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/declaration/association.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/definition_proxy.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/definition_proxy.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/attribute.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/attribute.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/factory_runner.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/factory_runner.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/null_factory.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/null_factory.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/evaluator.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/evaluator.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/definition_hierarchy.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/definition_hierarchy.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/attribute/sequence.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/attribute/sequence.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/attribute/association.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/attribute/association.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/attribute/dynamic.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/attribute/dynamic.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/factory.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/factory.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/trait.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/trait.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/sequence.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/sequence.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/attribute/association.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/attribute/association.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/attribute_assigner.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/attribute_assigner.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy_calculator.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy_calculator.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/syntax.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/syntax.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/registry.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/registry.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/evaluation.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/evaluation.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/null_object.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/null_object.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/version.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/version.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/configuration.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/configuration.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/syntax/default.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/syntax/default.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/syntax/methods.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/syntax/methods.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/internal.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/internal.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/callback.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/callback.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/factory.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/factory.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/syntax_runner.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/syntax_runner.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator/invocation_tracker.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator/invocation_tracker.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator/disallows_duplicates_registry.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator/disallows_duplicates_registry.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator/new_constructor.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator/new_constructor.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator/attribute_hash.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator/attribute_hash.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/find_definitions.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/find_definitions.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/definition_hierarchy.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/definition_hierarchy.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy_syntax_method_registrar.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy_syntax_method_registrar.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/evaluator_class_definer.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/evaluator_class_definer.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/null_object.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/null_object.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/attribute_list.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/attribute_list.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/aliases.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/aliases.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/declaration_list.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/declaration_list.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/definition.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/definition.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/configuration.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/configuration.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/declaration.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/declaration.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/linter.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/linter.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/definition_proxy.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/definition_proxy.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy/attributes_for.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy/attributes_for.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy/null.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy/null.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/version.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/version.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy/create.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy/create.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy/stub.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy/stub.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy/attributes_for.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy/attributes_for.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy/build.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy/build.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy/create.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy/create.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/factory_runner.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/factory_runner.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/find_definitions.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/find_definitions.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator/new_constructor.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator/new_constructor.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator/invocation_tracker.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator/invocation_tracker.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator/attribute_hash.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator/attribute_hash.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/decorator/disallows_duplicates_registry.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/decorator/disallows_duplicates_registry.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/reload.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/reload.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy_syntax_method_registrar.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy_syntax_method_registrar.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/syntax_runner.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/syntax_runner.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/errors.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/errors.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/syntax/methods.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/syntax/methods.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/syntax/default.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/syntax/default.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/declaration/association.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/declaration/association.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/declaration/dynamic.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/declaration/dynamic.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/declaration/implicit.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/declaration/implicit.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/attribute.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/attribute.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy/null.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy/null.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/evaluator.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/evaluator.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/linter.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/linter.rb install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/callbacks_observer.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/callbacks_observer.rb -install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/trait.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/trait.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/definition.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/definition.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/reload.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/reload.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/callback.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/callback.rb +install -D -m644 /build/ruby-factory-bot-5.1.1/lib/factory_bot/strategy_calculator.rb /build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby/factory_bot/strategy_calculator.rb ┌──────────────────────────────────────────────────────────────────────────────┐ │ Install Rubygems integration metadata │ @@ -1073,31 +1144,42 @@ RUBYLIB=/build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/lib/ruby/vendor_ruby:. GEM_PATH=/build/ruby-factory-bot-5.1.1/debian/ruby-factory-bot/usr/share/rubygems-integration/all:/var/lib/gems/2.7.0:/usr/local/lib/ruby/gems/2.7.0:/usr/lib/ruby/gems/2.7.0:/usr/lib/arm-linux-gnueabihf/ruby/gems/2.7.0:/usr/share/rubygems-integration/2.7.0:/usr/share/rubygems-integration/all:/usr/lib/arm-linux-gnueabihf/rubygems-integration/2.7.0 ruby2.7 -S rake -f debian/ruby-tests.rake /usr/bin/ruby2.7 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.9.3/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.9.2/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.9.2/exe/rspec --pattern spec/\{\*_spec.rb,factory_bot/\*\*/\*_spec.rb\} --format documentation -Randomized with seed 51132 +Randomized with seed 46698 -FactoryBot::Declaration::Dynamic - #== - when the blocks are different - the objects are NOT equal - when the names are different - the objects are NOT equal - when comparing against another type of object - the objects are NOT equal - when the attributes are equal - the objects are equal - when one is ignored and the other isn't - the objects are NOT equal +FactoryBot::DeclarationList#declare_attribute + when overridable + adds the declaration to the list + deletes declarations with the same name + when not overridable + adds the declaration to the list -FactoryBot::DefinitionProxy#sequence - creates a new sequence starting at 1 - creates a new sequence with a block - creates a new sequence with an overridden starting vaue +FactoryBot::DefinitionProxy#transient + makes all attributes added ignored -FactoryBot::AttributeList generating names - knows all its #names for #non_ignored attributes - knows all its #names for #ignored attributes - knows all its #names - knows all its #names for #associations +FactoryBot::AttributeList#apply_attributes + adds attributes in the order defined + +FactoryBot::DeclarationList#attributes + defines each attribute on the attribute list + returns an AttributeList + +FactoryBot::Definition + is expected to delegate :declare_attribute + defining traits + adds only unique traits + maintains a list of traits + #name + returns the name + #to_create + returns the assigned value when given a block + to_create + is expected to be nil + with a name + creates a new attribute list with the name passed + adding callbacks + maintains a list of callbacks + #overridable + sets the declaration list as overridable FactoryBot::Decorator::AttributeHash #attributes @@ -1105,93 +1187,380 @@ with an attribute called 'attributes' does not call itself recursively -FactoryBot::Factory with a string for a name +FactoryBot::Factory when given a class that overrides #to_s + sets build_class correctly + +FactoryBot::DefinitionProxy#add_attribute + declares a dynamic attribute on the factory + +definition loading + with a factories file under test + it should behave like finds definitions + is expected to load definitions from test/factories.rb + with deeply nested factory files under test + it should behave like finds definitions + is expected to load definitions from test/factories/subdirectory/person_factory.rb + is expected to load definitions from test/factories/subdirectory/post_factory.rb + with several factories files under spec/factories in non-alphabetical order + loads the files in the right order + with a factories file under spec/factories + it should behave like finds definitions + is expected to load definitions from spec/factories/post_factory.rb + with nested and unnested factories files under test + it should behave like finds definitions + is expected to load definitions from test/factories/person_factory.rb + is expected to load definitions from test/factories.rb + is expected to load definitions from test/factories/post_factory.rb + with nested and unnested factories files under spec + it should behave like finds definitions + is expected to load definitions from spec/factories/person_factory.rb + is expected to load definitions from spec/factories/post_factory.rb + is expected to load definitions from spec/factories.rb + with factories.rb + it should behave like finds definitions + is expected to load definitions from factories.rb + with several factories files under test/factories + it should behave like finds definitions + is expected to load definitions from test/factories/post_factory.rb + is expected to load definitions from test/factories/person_factory.rb + with deeply nested factory files under spec + it should behave like finds definitions + is expected to load definitions from spec/factories/subdirectory/person_factory.rb + is expected to load definitions from spec/factories/subdirectory/post_factory.rb + with a factories file under spec + it should behave like finds definitions + is expected to load definitions from spec/factories.rb + with several factories files under test/factories in non-alphabetical order + loads the files in the right order + with several factories files under spec/factories + it should behave like finds definitions + is expected to load definitions from spec/factories/post_factory.rb + is expected to load definitions from spec/factories/person_factory.rb + with a factories file under test/factories + it should behave like finds definitions + is expected to load definitions from test/factories/post_factory.rb + +FactoryBot::DefinitionProxy#association + declares an association + declares an association with options + when passing a block + raises an error + +FactoryBot::Strategy::Create + runs a custom create block + it should behave like strategy with callbacks + runs the callbacks [:after_build, :before_create, :after_create] with the evaluation's object + returns the object from the evaluation + it should behave like strategy with association support + finds the factory with the correct factory name + runs the factory with the correct overrides + +FactoryBot::Factory for namespaced class + with a namespaced class with Namespace::Class syntax + sets build_class correctly + with a namespaced class with namespace/class syntax + sets build_class correctly + +FactoryBot::Factory when defined with a class instead of a name + build_class + is expected to eq ArgumentError name - is expected to eq :string + is expected to eq :argument_error + +FactoryBot::AttributeList generating names + knows all its #names for #associations + knows all its #names + knows all its #names for #ignored attributes + knows all its #names for #non_ignored attributes + +FactoryBot::StrategyCalculator + when a symbol + returns the strategy found + finds the strategy by name + when a class + returns the class passed + +FactoryBot::NullObject + responds to the given methods + does not respond to other methods + +FactoryBot::Decorator::DisallowsDuplicatesRegistry + raises when attempting to #register a previously registered strategy + delegates #register to the registry when not registered + +FactoryBot::DefinitionProxy#factory + with a block + without options + with options + +FactoryBot::Attribute::Dynamic + with a block returning a static value + returns the value when executing the proc + with a block returning a sequence + raises a sequence abuse error + with a block returning its block-level variable + returns self when executing the proc + with a block referencing an attribute on the attribute + evaluates the attribute from the attribute + name + is expected to eq :first_name + +FactoryBot::AttributeList#define_attribute + maintains a list of attributes + returns the attribute + raises if an attribute has already been defined + +FactoryBot::Internal + .register_factory + registers the provided factory + returns the registered factory + .factory_by_name + finds a registered factory + .rewind_sequences + rewinds the sequences and the internal sequences + .sequence_by_name + finds a registered sequence + .factory_by_name + finds a registered factory + .register_trait + registers the provided trait + returns the registered trait + .register_sequence + returns the registered sequence + registers the provided sequence + .trait_by_name + finds a previously registered trait + .strategy_by_name + finds a registered strategy + default strategies and callbacks + registers the after_build by default + registers the after_stub by default + registers the attributes_for strategy by default + registers the create strategy by default + registers the after_create by default + registers the build strategy by default + registers the null strategy by default + registers the after_create by default + registers the build_stubbed strategy by default + .register_factory + returns the registered factory + registers the provided factory + .register_strategy + register the provided strategy name with the class + +FactoryBot::Factory running a factory + returns the result from the strategy when running + creates the right strategy using the build class when running + calls the block and returns the result + +FactoryBot::DefinitionProxy#sequence + creates a new sequence with an overridden starting vaue + creates a new sequence starting at 1 + creates a new sequence with a block + +FactoryBot::DefinitionProxy#method_missing + when called with a static-attribute-like argument + raises a NoMethodError + when called without args or a block + declares an implicit declaration + when called with a ':factory' key + declares an association + when called with a block + declares a dynamic attribute + +FactoryBot::NullFactory + is expected to delegate :attributes + is expected to delegate :defined_traits + is expected to delegate :callbacks + is expected to delegate :constructor + class_name + is expected to be nil + attributes + is expected to be an instance of FactoryBot::AttributeList + evaluator_class + is expected to eq FactoryBot::Evaluator + compile + is expected to be nil + +FactoryBot::DefinitionProxy#to_create + accepts a block to run in place of #save! FactoryBot::Declaration::Implicit + #== + when the attributes are equal + the objects are equal + when the factories are different + the objects are NOT equal + when one is ignored and the other isn't + the objects are NOT equal + when comparing against another type of object + the objects are NOT equal + when the names are different + the objects are NOT equal with a known factory has the correct factory name creates an association attribute with a known sequence creates a sequence attribute does not create an assocition attribute + +FactoryBot::Factory when defined with a custom class name + build_class + is expected to eq ArgumentError + +FactoryBot::Attribute::Association + builds the association when calling the proc + is expected to be association + builds the association when calling the proc + name + is expected to eq :author + +FactoryBot::DefinitionProxy#initialize_with + defines the constructor on the definition + +FactoryBot::Strategy::AttributesFor + returns the hash from the evaluation + does not run the to_create block + it should behave like strategy without association support + returns nil when accessing an association + +FactoryBot::AttributeList filter based on ignored attributes + filters #non_ignored attributes + filters #ignored attributes + +FactoryBot::DefinitionProxy#trait + declares a trait + +FactoryBot::EvaluatorClassDefiner + evaluates the block in the context of the evaluator + only instance_execs the block once even when returning nil + sets attributes on the evaluator class + returns an evaluator when accessing the evaluator class + adds each attribute to the evaluator + with a custom evaluator as a parent class + bases its attribute lists on itself and its parent evaluator + +FactoryBot::AttributeList#associations + returns associations + +FactoryBot::DefinitionProxy#add_attribute when the proxy ignores attributes + declares a dynamic attribute on the factory + +FactoryBot::Attribute::Association with a string name + name + is expected to eq :name + +FactoryBot::AttributeList#define_attribute with a named attribute list + does not raise when the attribute is not a self-referencing association + raises when the attribute is a self-referencing association + +FactoryBot after defining an alias + is expected to include :test + is expected to include :test_suffix_id + +FactoryBot::Declaration::Association #== when comparing against another type of object the objects are NOT equal + when the options are different + the objects are NOT equal when the names are different the objects are NOT equal + when the attributes are equal + the objects are equal + +FactoryBot::Declaration::Dynamic + #== + when the blocks are different + the objects are NOT equal + when comparing against another type of object + the objects are NOT equal when one is ignored and the other isn't the objects are NOT equal + when the names are different + the objects are NOT equal when the attributes are equal the objects are equal - when the factories are different - the objects are NOT equal -FactoryBot::Registry - raises when an object cannot be found - knows that an object is registered by symbol - does not include duplicate objects with registered under different names - clears registered factories - iterates registered objects - finds a registered object - finds a registered object with square brackets - knows that an object is registered by string - knows when an object is not registered - adds and returns the object registered - is expected to be a kind of Enumerable +FactoryBot::Factory with a string for a name + name + is expected to eq :string -FactoryBot::DefinitionProxy#factory - with a block - without options - with options +FactoryBot::Factory human names + factory name with big letters + names + is expected to eq [:LoL] + human_names + is expected to eq ["lol"] + factory name with underscores + names + is expected to eq [:happy_user] + human_names + is expected to eq ["happy user"] + factory name without underscores + names + is expected to eq [:user] + human_names + is expected to eq ["user"] + factory name with aliases + human_names + is expected to eq ["happy user", "gleeful user", "person"] + names + is expected to eq [:happy_user, :gleeful_user, :person] FactoryBot::Sequence - a basic sequence without a block + a custom sequence and scope + increments within the correct scope + when incrementing + increments within the correct scope + after rewinding + increments within the correct scope + a basic sequence + name + is expected to eq :test behaves like a sequence next - is expected to eq 1 + is expected to eq "=1" after rewinding next - is expected to eq 1 + is expected to eq "=1" when incrementing next - is expected to eq 2 - a basic sequence + is expected to eq "=2" names is expected to eq [:test] + a basic sequence without a block behaves like a sequence + next + is expected to eq 1 when incrementing next - is expected to eq "=2" - next - is expected to eq "=1" + is expected to eq 2 after rewinding next - is expected to eq "=1" - name - is expected to eq :test - a sequence with custom value and aliases - names - is expected to eq [:test, :alias, :other] + is expected to eq 1 + iterating over items in an enumerator + navigates to the next items until no items remain behaves like a sequence after rewinding next - is expected to eq "=3" + is expected to eq "=foo" + next + is expected to eq "=foo" when incrementing next - is expected to eq "=4" + is expected to eq "=bar" + a custom sequence without a block + behaves like a sequence + when incrementing + next + is expected to eq "B" + after rewinding + next + is expected to eq "A" next - is expected to eq "=3" - a custom sequence and scope - increments within the correct scope - when incrementing - increments within the correct scope - after rewinding - increments within the correct scope + is expected to eq "A" a sequence with aliases using default value - names - is expected to eq [:test, :alias, :other] behaves like a sequence when incrementing next @@ -1201,651 +1570,294 @@ is expected to eq "=1" next is expected to eq "=1" - a custom sequence without a block + names + is expected to eq [:test, :alias, :other] + a sequence with custom value and aliases + names + is expected to eq [:test, :alias, :other] behaves like a sequence next - is expected to eq "A" + is expected to eq "=3" after rewinding next - is expected to eq "A" + is expected to eq "=3" when incrementing next - is expected to eq "B" + is expected to eq "=4" a custom sequence behaves like a sequence - when incrementing - next - is expected to eq "=B" - next - is expected to eq "=A" after rewinding next is expected to eq "=A" - iterating over items in an enumerator - navigates to the next items until no items remain - behaves like a sequence - after rewinding - next - is expected to eq "=foo" next - is expected to eq "=foo" + is expected to eq "=A" when incrementing next - is expected to eq "=bar" - -FactoryBot::Strategy::Create - runs a custom create block - it should behave like strategy with association support - finds the factory with the correct factory name - runs the factory with the correct overrides - it should behave like strategy with callbacks - returns the object from the evaluation - runs the callbacks [:after_build, :before_create, :after_create] with the evaluation's object - -FactoryBot::DefinitionProxy#transient - makes all attributes added ignored + is expected to eq "=B" -FactoryBot::StrategyCalculator - when a class - returns the class passed - when a symbol - returns the strategy found - finds the strategy by name +FactoryBot::Attribute::Sequence + assigns the next value in the sequence + name + is expected to eq :first_name -FactoryBot - finds a registered strategy - finds a registered trait - finds a registered factory - finds a registered sequence - .use_parent_strategy - is true by default +FactoryBot::Callback + has a name + raises if an invalid callback name is assigned + allows valid callback names to be assigned + runs its block with two parameters + runs its block with no parameters + runs its block with one parameter + converts strings to symbols FactoryBot::DefinitionProxy adding callbacks - #after(:stub, :create) - is expected to have callback :after_create - is expected to have callback :after_stub - #before(:stub, :create) - is expected to have callback :before_stub - is expected to have callback :before_create - #after(:create) - is expected to have callback :after_create #after(:stub) is expected to have callback :after_stub #callback(:after_stub, :before_create) - is expected to have callback :after_stub is expected to have callback :before_create + is expected to have callback :after_stub #after(:build) is expected to have callback :after_build + #before(:stub, :create) + is expected to have callback :before_create + is expected to have callback :before_stub + #after(:create) + is expected to have callback :after_create + #after(:stub, :create) + is expected to have callback :after_stub + is expected to have callback :after_create -FactoryBot::DefinitionProxy#add_attribute - declares a dynamic attribute on the factory - -FactoryBot::NullObject - does not respond to other methods - responds to the given methods - -FactoryBot::Attribute::Association with a string name +FactoryBot::Attribute::Dynamic with a string name name is expected to eq :name +FactoryBot::Factory when defined with a custom class + build_class + is expected to eq Float + FactoryBot aliases - aliases for an attribute - is expected to include :test - is expected to include :test_id + aliases for an attribute starting with an underscore + is expected not to include :id aliases for a foreign key + is expected to include :test_id + is expected to include :test + aliases for an attribute is expected to include :test is expected to include :test_id - aliases for an attribute starting with an underscore - is expected not to include :id -FactoryBot::Strategy::AttributesFor - returns the hash from the evaluation - does not run the to_create block - it should behave like strategy without association support - returns nil when accessing an association +FactoryBot::Factory + creates a new factory using the class of the parent + includes associations from the parent factory + has a build class + guesses the build class from the factory name + creates a new factory while overriding the parent class + has a factory name + returns associations + when overriding generated attributes with a hash + overrides a symbol parameter with a string parameter + returns the overridden value in the generated attributes + overriding an attribute with an alias + uses the passed in value for the alias + discards the predefined value for the attribute + +FactoryBot + finds a registered factory + finds a registered trait + finds a registered strategy + finds a registered sequence + .use_parent_strategy + is true by default + +FactoryBot::Factory with a name ending in s + build_class + is expected to eq Business + name + is expected to eq :business FactoryBot::Strategy::Stub it should behave like strategy with strategy: :build - finds the factory with the correct factory name runs the factory with the correct overrides + finds the factory with the correct factory name asking for a result + assigns created_at + is expected not to be new record is expected not to be destroyed is expected to be persisted - is expected not to be new record - assigns created_at - overriding persistence method: #delete + overriding persistence method: #save raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #update_attributes + overriding persistence method: #update_attribute + raises an informative error if the method is called + overrides the method with any arity + overriding persistence method: #delete overrides the method with any arity raises an informative error if the method is called - overriding persistence method: #save! + overriding persistence method: #reload raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #update! - overrides the method with any arity + overriding persistence method: #toggle! raises an informative error if the method is called - overriding persistence method: #update_columns + overrides the method with any arity + overriding persistence method: #decrement! raises an informative error if the method is called overrides the method with any arity overriding persistence method: #update_attributes! overrides the method with any arity raises an informative error if the method is called - overriding persistence method: #reload + overriding persistence method: #update raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #decrement! - overrides the method with any arity + overriding persistence method: #touch raises an informative error if the method is called + overrides the method with any arity overriding persistence method: #update_column raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #increment! + overriding persistence method: #update! raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #destroy! + overriding persistence method: #update_attributes raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #connection + overriding persistence method: #destroy! overrides the method with any arity raises an informative error if the method is called - overriding persistence method: #touch - raises an informative error if the method is called - overrides the method with any arity - overriding persistence method: #destroy + overriding persistence method: #update_columns overrides the method with any arity raises an informative error if the method is called - overriding persistence method: #update_attribute + overriding persistence method: #increment! raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #save + overriding persistence method: #destroy raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #update + overriding persistence method: #save! overrides the method with any arity raises an informative error if the method is called - overriding persistence method: #toggle! + overriding persistence method: #connection raises an informative error if the method is called overrides the method with any arity + it should behave like strategy with association support + finds the factory with the correct factory name + runs the factory with the correct overrides it should behave like strategy with callbacks runs the callbacks [:after_stub] with the evaluation's object returns the object from the evaluation - it should behave like strategy with association support - runs the factory with the correct overrides - finds the factory with the correct factory name -FactoryBot::Attribute - is expected not to be association - name - is expected to eq :user - -FactoryBot::Factory for namespaced class - with a namespaced class with namespace/class syntax - sets build_class correctly - with a namespaced class with Namespace::Class syntax - sets build_class correctly - -FactoryBot::Attribute::Dynamic - with a block returning a static value - returns the value when executing the proc - with a block returning a sequence - raises a sequence abuse error - with a block returning its block-level variable - returns self when executing the proc - with a block referencing an attribute on the attribute - evaluates the attribute from the attribute - name - is expected to eq :first_name - -FactoryBot::Factory when given a class that overrides #to_s - sets build_class correctly - -FactoryBot::Factory when defined with a custom class name - build_class - is expected to eq ArgumentError +FactoryBot::Registry + finds a registered object with square brackets + adds and returns the object registered + raises when an object cannot be found + knows that an object is registered by symbol + knows when an object is not registered + clears registered factories + does not include duplicate objects with registered under different names + knows that an object is registered by string + iterates registered objects + finds a registered object + is expected to be a kind of Enumerable FactoryBot::Strategy::Build + it should behave like strategy with strategy: :build + finds the factory with the correct factory name + runs the factory with the correct overrides it should behave like strategy with callbacks returns the object from the evaluation runs the callbacks [:after_build] with the evaluation's object it should behave like strategy with association support runs the factory with the correct overrides finds the factory with the correct factory name - it should behave like strategy with strategy: :build - finds the factory with the correct factory name - runs the factory with the correct overrides - -FactoryBot::DefinitionProxy#add_attribute when the proxy ignores attributes - declares a dynamic attribute on the factory - -FactoryBot::AttributeList#associations - returns associations - -FactoryBot::Declaration::Association - #== - when the names are different - the objects are NOT equal - when the attributes are equal - the objects are equal - when comparing against another type of object - the objects are NOT equal - when the options are different - the objects are NOT equal - -FactoryBot::Decorator::DisallowsDuplicatesRegistry - raises when attempting to #register a previously registered strategy - delegates #register to the registry when not registered -definition loading - with nested and unnested factories files under test - it should behave like finds definitions - is expected to load definitions from test/factories.rb - is expected to load definitions from test/factories/post_factory.rb - is expected to load definitions from test/factories/person_factory.rb - with several factories files under test/factories - it should behave like finds definitions - is expected to load definitions from test/factories/post_factory.rb - is expected to load definitions from test/factories/person_factory.rb - with deeply nested factory files under test - it should behave like finds definitions - is expected to load definitions from test/factories/subdirectory/post_factory.rb - is expected to load definitions from test/factories/subdirectory/person_factory.rb - with several factories files under spec/factories in non-alphabetical order - loads the files in the right order - with several factories files under spec/factories - it should behave like finds definitions - is expected to load definitions from spec/factories/post_factory.rb - is expected to load definitions from spec/factories/person_factory.rb - with deeply nested factory files under spec - it should behave like finds definitions - is expected to load definitions from spec/factories/subdirectory/post_factory.rb - is expected to load definitions from spec/factories/subdirectory/person_factory.rb - with nested and unnested factories files under spec - it should behave like finds definitions - is expected to load definitions from spec/factories/post_factory.rb - is expected to load definitions from spec/factories/person_factory.rb - is expected to load definitions from spec/factories.rb - with a factories file under test/factories - it should behave like finds definitions - is expected to load definitions from test/factories/post_factory.rb - with a factories file under spec - it should behave like finds definitions - is expected to load definitions from spec/factories.rb - with factories.rb - it should behave like finds definitions - is expected to load definitions from factories.rb - with several factories files under test/factories in non-alphabetical order - loads the files in the right order - with a factories file under spec/factories - it should behave like finds definitions - is expected to load definitions from spec/factories/post_factory.rb - with a factories file under test - it should behave like finds definitions - is expected to load definitions from test/factories.rb - -FactoryBot::DeclarationList#declare_attribute - when overridable - adds the declaration to the list - deletes declarations with the same name - when not overridable - adds the declaration to the list - -FactoryBot::DefinitionProxy#trait - declares a trait - -FactoryBot::AttributeList#define_attribute with a named attribute list - raises when the attribute is a self-referencing association - does not raise when the attribute is not a self-referencing association - -FactoryBot after defining an alias - is expected to include :test - is expected to include :test_suffix_id - -FactoryBot::Factory when defined with a custom class - build_class - is expected to eq Float - -FactoryBot::AttributeList#apply_attributes - adds attributes in the order defined - -FactoryBot::Attribute::Association - builds the association when calling the proc - builds the association when calling the proc - is expected to be association +FactoryBot::Attribute + is expected not to be association name - is expected to eq :author - -FactoryBot::DefinitionProxy#to_create - accepts a block to run in place of #save! - -FactoryBot::DefinitionProxy#association - declares an association - declares an association with options - when passing a block - raises an error - -FactoryBot::NullFactory - is expected to delegate :callbacks - is expected to delegate :defined_traits - is expected to delegate :constructor - is expected to delegate :attributes - compile - is expected to be nil - evaluator_class - is expected to eq FactoryBot::Evaluator - class_name - is expected to be nil - attributes - is expected to be an instance of FactoryBot::AttributeList - -FactoryBot::EvaluatorClassDefiner - adds each attribute to the evaluator - sets attributes on the evaluator class - evaluates the block in the context of the evaluator - returns an evaluator when accessing the evaluator class - only instance_execs the block once even when returning nil - with a custom evaluator as a parent class - bases its attribute lists on itself and its parent evaluator + is expected to eq :user -FactoryBot::Factory when defined with a class instead of a name - build_class - is expected to eq ArgumentError - name - is expected to eq :argument_error +Finished in 1.42 seconds (files took 1.57 seconds to load) +307 examples, 0 failures -FactoryBot::Attribute::Dynamic with a string name - name - is expected to eq :name +Randomized with seed 46698 -FactoryBot::AttributeList filter based on ignored attributes - filters #non_ignored attributes - filters #ignored attributes +/usr/bin/ruby2.7 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.9.3/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.9.2/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.9.2/exe/rspec --pattern spec/acceptance/\*\*/\*_spec.rb --format documentation -FactoryBot::Factory running a factory - returns the result from the strategy when running - creates the right strategy using the build class when running - calls the block and returns the result +Randomized with seed 61781 -FactoryBot::DefinitionProxy#method_missing - when called without args or a block - declares an implicit declaration - when called with a static-attribute-like argument - raises a NoMethodError - when called with a block - declares a dynamic attribute - when called with a ':factory' key - declares an association +including FactoryBot::Syntax::Methods when custom strategies have been declared + allows adding additional strategies -FactoryBot::Definition - is expected to delegate :declare_attribute - #overridable - sets the declaration list as overridable - defining traits - maintains a list of traits - adds only unique traits - adding callbacks - maintains a list of callbacks - #name - returns the name - #to_create - returns the assigned value when given a block - to_create - is expected to be nil - with a name - creates a new attribute list with the name passed +associations without overriding :strategy + when the :use_parent_strategy config option is set to true + uses the parent strategy on the association + when the :use_parent_strategy config option is set to false + uses the overridden strategy on the association -FactoryBot::Factory - guesses the build class from the factory name - includes associations from the parent factory - returns associations - has a build class - has a factory name - creates a new factory using the class of the parent - creates a new factory while overriding the parent class - overriding an attribute with an alias - uses the passed in value for the alias - discards the predefined value for the attribute - when overriding generated attributes with a hash - returns the overridden value in the generated attributes - overrides a symbol parameter with a string parameter +initialize_with implicit constructor + instantiates the correct object -FactoryBot::DefinitionProxy#initialize_with - defines the constructor on the definition +trait indifferent access + when trait is defined as struct + can be invoked with a struct + can be invoked with a string + when trait is defined as integer + can be invoked with as integer + can be invoked with a string + when trait is defined as a string + can be invoked with a symbol + can be invoked with a string + when trait is defined as a symbol + can be invoked with a string + can be invoked with a symbol -FactoryBot::Factory with a name ending in s - name - is expected to eq :business - build_class - is expected to eq Business +declaring attributes on a Factory that are private methods on Object + system + is expected to eq false + sleep + is expected to eq -5 + link + is expected to eq "http://example.com" -FactoryBot::Callback - has a name - runs its block with two parameters - runs its block with one parameter - allows valid callback names to be assigned - converts strings to symbols - raises if an invalid callback name is assigned - runs its block with no parameters +attribute aliases + assigning an association by passing factory + assigns attributes correctly + assigning an association by foreign key + doesn't assign both an association and its foreign key -FactoryBot::Factory human names - factory name with big letters - names - is expected to eq [:LoL] - human_names - is expected to eq ["lol"] - factory name with aliases - names - is expected to eq [:happy_user, :gleeful_user, :person] - human_names - is expected to eq ["happy user", "gleeful user", "person"] - factory name without underscores - names - is expected to eq [:user] - human_names - is expected to eq ["user"] - factory name with underscores - names - is expected to eq [:happy_user] - human_names - is expected to eq ["happy user"] +callbacks using Symbol#to_proc + runs the callback correctly -FactoryBot::Internal - .register_factory - returns the registered factory - registers the provided factory - .trait_by_name - finds a previously registered trait - .sequence_by_name - finds a registered sequence - default strategies and callbacks - registers the after_create by default - registers the after_create by default - registers the create strategy by default - registers the after_build by default - registers the attributes_for strategy by default - registers the null strategy by default - registers the build strategy by default - registers the after_stub by default - registers the build_stubbed strategy by default - .register_sequence - registers the provided sequence - returns the registered sequence - .register_factory - returns the registered factory - registers the provided factory - .factory_by_name - finds a registered factory - .rewind_sequences - rewinds the sequences and the internal sequences - .factory_by_name - finds a registered factory - .register_strategy - register the provided strategy name with the class - .strategy_by_name - finds a registered strategy - .register_trait - returns the registered trait - registers the provided trait +nested factories with different parents + honors :parent over the factory block nesting -FactoryBot::DeclarationList#attributes - defines each attribute on the attribute list - returns an AttributeList +global callbacks + triggers after build callbacks for all factories -FactoryBot::Attribute::Sequence - assigns the next value in the sequence +initialize_with with non-FG attributes name - is expected to eq :first_name - -FactoryBot::AttributeList#define_attribute - raises if an attribute has already been defined - maintains a list of attributes - returns the attribute - -Finished in 1.1 seconds (files took 1.3 seconds to load) -307 examples, 0 failures - -Randomized with seed 51132 - -/usr/bin/ruby2.7 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.9.3/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.9.2/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.9.2/exe/rspec --pattern spec/acceptance/\*\*/\*_spec.rb --format documentation - -Randomized with seed 39120 - -a custom create passing in an evaluator - passes the evaluator to the custom create block - -binding a callback to multiple callbacks - binds the callback to stubbing - binds the callback to creation - does not bind the callback to building - -a generated stub instance - assigns associations - disables reload - disables destroy - disables update_attribute - has an id - assigns associations that aren't new records - assigns an overridden attribute - disables toggle! - isn't changed - generates unique ids - disables save - assigns a default attribute - allows increment - disables connection - allows decrement - disables decrement! - isn't a new record - disables increment! - allows toggle - -initialize_with doesn't duplicate assignment on attributes accessed from initialize_with - instantiates the correct object - -defining a child factory before a parent - creates admin factories correctly - -a created instance, specifying strategy: :build - saves associations (strategy: :build only affects build, not create) - -callbacks using syntax methods without referencing FactoryBot explicitly - works when the callback has no variables - works when the callback has two variables - works when the callback has one variable - -multiple creates and transient attributes to dynamically build attribute lists - generates the correct number of posts - allows the number of posts to be modified + is expected to eq "John Doe" + age + is expected to eq 21 global to_create uses to_create globally across FactoryBot.define - handles child to_create handles inline trait override - handles base to_create handles child to_create with trait + handles base to_create + handles child to_create -inline traits overriding existing attributes - prefers attributes on factories over attributes from non-inline traits - prefers inline trait attributes over default attributes - prefers inline traits over attributes on factories - returns the default status - prefers inline trait attributes over traits on a factory - prefers traits on a factory over default attributes - prefers overridden attributes over attributes from traits, inline traits, or attributes on factories - -create multiple instances - with a block - uses the new values - with default attributes - overrides the default values - without default attributes - uses the default factory values - creates all the posts - length - is expected to eq 20 - without the count - raise ArgumentError with the proper error message - -callbacks - runs the after(:stub) callback when stubbing - runs the after(:build) callback when building - runs child callback after parent callback - runs both the after(:build) and after(:create) callbacks when creating - runs both the after(:stub) callback on the factory and the inherited after(:stub) callback - -a built instance - is expected to be new record - when the :use_parent_strategy config option is set to true - assigns but does not save associations - when the :use_parent_strategy config option is set to false - assigns and saves associations - -defaulting `id` - allows overriding id - -sequences - generates several values in the correct format - generates few values of the sequence - generates sequential numbers if no block is given - generates aliases for the sequence that reference the same block and retains value - generates aliases for the sequence that reference the same block - -calling `build` with a block - returns the built instance - passes the built instance - -initialize_with with FG attributes that are transient - name - is expected to eq "Handsome Chap from .construct" - -FactoryBot.lint - raises when a factory is invalid - allows for selective linting - does not raise when all factories are valid - trait validation - enabled - raises if a trait produces an invalid object - does not raise if a trait produces a valid object - disabled - does not raises if a trait produces an invalid object - factory strategy for linting - uses the requested strategy - uses the requested strategy during trait validation - verbose linting - prints the backtrace for each factory error +assigning values from a transient attribute + does not ignore an _id attribute that is an alias for a transient attribute an instance generated by a factory that inherits from another factory the child class redefining parent's attributes - is expected to be a kind of User(id: integer, name: string, admin: boolean, email: string, upper_email: string, login: string) is expected to be admin - name - is expected to eq "admin" + is expected to be a kind of User(id: integer, name: string, admin: boolean, email: string, upper_email: string, login: string) upper_email is expected to eq "ADMIN@EXAMPLE.COM" - email - is expected to eq "admin@example.com" login is expected to eq "admin@example.com" + email + is expected to eq "admin@example.com" + name + is expected to eq "admin" the parent class is expected not to be admin login @@ -1855,287 +1867,161 @@ email is expected to eq "john@example.com" -a built instance with strategy: :create - assigns and saves associations - is expected to be new record - -calling methods on the model instance - without the attribute being overridden - returns the correct value from the instance - doesn't instantiate a record with attributes_for - returns nil during attributes_for - with the attribute being overridden - uses the overridden value - uses the overridden value during attributes_for - with the referenced attribute being overridden - uses the overridden value during attributes_for - uses the overridden value - -initialize_with with an 'attributes' attribute - assigns attributes correctly - -create multiple instances - without default attributes - uses the default factory values - creates all the posts - length - is expected to eq 2 - -transient attributes - returning attributes for a factory - is expected not to have key :upcased - is expected to have key :email - is expected not to have key :four - is expected to have key :name - is expected not to have key :rockstar - without transient variables assigned - uses the default value of the attribute - with a transient variable assigned - generates the correct attributes on a groupie - generates the correct attributes on a rockstar - generates the correct attributes on a rockstar with a name - generates the correct attributes on an upcased rockstar - -association assignment from nested attributes - assigns the correct amount of comments - assigns the correct amount of comments when overridden - -an instance generated by a factory named a camel case string - registers the UserModel factory - -initialize_with for a constructor that requires a block - executes the block correctly - -defaulting `created_at` - allows assignment of created_at - allows overriding created_at for objects with created_at - doesn't allow setting created_at on an object that doesn't define it - defaults created_at for objects with created_at - behaves the same as a non-stubbed created_at - is doesn't mark the object as changed - doesn't add created_at to objects who don't have the method +a stubbed instance + acts as if it came from the database + assigns associations and acts as if it is saved modifying factories raises an exception if the factory was not defined before - doesn't overwrite already defined child's attributes allows for overriding child classes - simple modification - does allow the factory to be subsequently modified - doesn't allow the factory to be subsequently defined - name - is expected to eq "Great User" - login - is expected to eq "GREAT USER" + doesn't overwrite already defined child's attributes redefining attributes creating user - without overrides + overriding the email name is expected to eq "Great User" email - is expected to eq "Great User-modified@example.com" + is expected to eq "perfect@example.com" overriding the name - email - is expected to eq "wonderful-modified@example.com" name is expected to eq "wonderful" - overriding the email email - is expected to eq "perfect@example.com" + is expected to eq "wonderful-modified@example.com" + without overrides name is expected to eq "Great User" + email + is expected to eq "Great User-modified@example.com" creating admin - overriding the email + without overrides admin is expected to equal true - name - is expected to eq "Great User" - email - is expected to eq "perfect@example.com" - without overrides email is expected to eq "Great User-modified@example.com" name is expected to eq "Great User" - admin - is expected to equal true overriding the name - email - is expected to eq "wonderful-modified@example.com" name is expected to eq "wonderful" + email + is expected to eq "wonderful-modified@example.com" admin is expected to equal true - adding callbacks - login - is expected to be nil - name - is expected to eq "great user" + overriding the email + admin + is expected to equal true + name + is expected to eq "Great User" + email + is expected to eq "perfect@example.com" reusing traits name is expected to eq "Johnny Rockstar!!!" + login + is expected to eq "JOHNNY ROCKSTAR!!!" email is expected to eq "Johnny Rockstar!!!@example.com" + simple modification + doesn't allow the factory to be subsequently defined + does allow the factory to be subsequently modified + name + is expected to eq "Great User" login - is expected to eq "JOHNNY ROCKSTAR!!!" - -a custom create - uses the custom create block instead of save - -custom callbacks - runs a custom callback without prepending before or after when the proper strategy executes - runs a custom after callback when the proper strategy executes - runs a custom before callback when the proper strategy executes - -build multiple instances - with default attributes - overrides the default values - with a block - correctly uses the set value - without default attributes - uses the default factory values - builds (but doesn't save) all the posts - length - is expected to eq 20 - -associations without overriding :strategy - when the :use_parent_strategy config option is set to true - uses the parent strategy on the association - when the :use_parent_strategy config option is set to false - uses the overridden strategy on the association - -making sure the factory is properly compiled the first time we want to instantiate it - can honor traits on the very first call - -nested factories with different parents - honors :parent over the factory block nesting - -reload - does not reset the value of use_parent_strategy - -initialize_with has access to all attributes for construction - assigns attributes correctly + is expected to eq "GREAT USER" + adding callbacks + login + is expected to be nil + name + is expected to eq "great user" -an instance generated by a factory with a custom class name - is expected to be a kind of User(id: integer, admin: boolean) - is expected to be admin +finding factories keyed by class instead of symbol + doesn't find the factory -calling `build_stubbed` with a block - passes the stub instance - returns the stub instance +a created instance + is expected not to be new record + assigns and saves associations -modifying inherited factories with traits - returns the correct value for overridden attributes from traits - allows modification of attributes created via traits - returns the correct value for overridden attributes from traits defining multiple attributes +defining methods inside FactoryBot + raises with a meaningful message -traits and dynamic attributes that are applied simultaneously - combined - is expected to eq "John " - name - is expected to eq "John" - email - is expected to eq "John@example.com" +traits used in associations + allows assigning traits for the factory of an association + allows inline traits with the default association + allows inline traits with a specific factory for an association -global callbacks - triggers after build callbacks for all factories +callbacks + runs child callback after parent callback + runs both the after(:stub) callback on the factory and the inherited after(:stub) callback + runs both the after(:build) and after(:create) callbacks when creating + runs the after(:build) callback when building + runs the after(:stub) callback when stubbing traits with to_create - can apply to_create from traits - gives base traits lower priority than overrides gives base traits normal priority - gives additional traits higher priority than to_create from the definition can apply to_create from the definition gives additional traits higher priority than base traits and factory definition - -initialize_with parent and child factories - uses the parent's constructor when the child factory doesn't assign it - allows child factories to override initialize_with - -attributes defined using Symbol#to_proc - assigns value with override correctly - assigns overridden value correctly - assigns values correctly - -traits with initialize_with - can apply initialize_with from traits - gives base traits normal priority - gives additional traits higher priority than initialize_with from the definition - can apply initialize_with from the definition + gives additional traits higher priority than to_create from the definition + can apply to_create from traits gives base traits lower priority than overrides - gives additional traits higher priority than base traits and factory definition -a stubbed instance - assigns associations and acts as if it is saved - acts as if it came from the database +initialize_with for a constructor that requires a block + executes the block correctly -skipping the default create - doesn't execute anything when creating the instance +calling `create` with a block + returns the created instance + passes the created instance + +nested implicit traits + defined inside the factory + it should behave like assigning data from traits + assigns the correct values + defined outside the factory + it should behave like assigning data from traits + assigns the correct values calling `attributes_for` with a block passes the hash of attributes returns the hash of attributes -global skip_create - honors overridden to_create - does not persist child records - honors inline trait to_create - does not persist any record - -global initialize_with - handles child initialize_with with trait - handles inline trait override - handles child initialize_with - handles base initialize_with - uses initialize_with globally across FactoryBot.define - -declaring attributes on a Factory that are private methods on Object - sleep - is expected to eq -5 - system - is expected to eq false - link - is expected to eq "http://example.com" - -a generated attributes hash where order matters - factory without a parent - assigns attributes in the order they're defined without a parent class - factory with a parent - assigns attributes in the order they're defined - -a stubbed instance overriding strategy - assigns associations and acts as if it is saved - acts as if it is saved in the database - -a created instance - assigns and saves associations - is expected not to be new record - -applying inline traits - applies traits only to the instance generated for that call - -assigning values from a transient attribute - does not ignore an _id attribute that is an alias for a transient attribute - -a stubbed instance with no primary key - builds a stubbed instance - behaves like a persisted record - -initialize_with with non-FG attributes - age - is expected to eq 21 - name - is expected to eq "John Doe" - an instance generated by a factory with multiple traits - the child with multiple traits and overridden attributes + the child with multiple traits is expected to be admin gender - is expected to be nil + is expected to eq "Female" name - is expected to eq "Jill" - the child with multiple traits + is expected to eq "Jane" + factory outside of scope + raises an error + the child with multiple traits who override the same attribute + when the male assigns name after female + is expected to be admin + gender + is expected to eq "Male" + name + is expected to eq "Joe" + when the female assigns name after male + is expected to be admin + name + is expected to eq "Jane" + gender + is expected to eq "Female" + the child with multiple traits and overridden attributes is expected to be admin name + is expected to eq "Jill" + gender + is expected to be nil + child factory created where trait attributes are inherited + date_of_birth + is expected to eq Sat, 01 Jan 2000 + gender + is expected to eq "Male" + child factory using grandparents' trait + great + is expected to eq "GREAT!!!" + the other child class with one trait + is expected not to be admin + name is expected to eq "Jane" gender is expected to eq "Female" @@ -2146,131 +2032,134 @@ name is expected to eq "John" factory created with alternate syntax for specifying trait - where trait name and attribute are the same - great - is expected to eq "GREAT!!!" where trait name and attribute are the same and attribute is overridden great is expected to eq "SORT OF!!!" gender is expected to eq "Male" - factory outside of scope - raises an error + where trait name and attribute are the same + great + is expected to eq "GREAT!!!" factory using global trait name is expected to eq "Bill" email is expected to eq "Bill@example.com" factory with trait defined multiple times - great - is expected to eq "GREAT!!!" child factory redefining trait great is expected to eq "EVEN GREATER!!!" - the child with multiple traits who override the same attribute - when the female assigns name after male - is expected to be admin - name - is expected to eq "Jane" - gender - is expected to eq "Female" - when the male assigns name after female - is expected to be admin - name - is expected to eq "Joe" - gender - is expected to eq "Male" - child factory using grandparents' trait great is expected to eq "GREAT!!!" - the parent class - is expected not to be admin - gender - is expected to be nil - name - is expected to eq "John" - child factory created where trait attributes are inherited - date_of_birth - is expected to eq Sat, 01 Jan 2000 - gender - is expected to eq "Male" child class with scoped trait and inherited trait is expected to be admin - name - is expected to eq "Judy" gender is expected to eq "Female" - the other child class with one trait + name + is expected to eq "Judy" + the parent class is expected not to be admin - gender - is expected to eq "Female" name - is expected to eq "Jane" + is expected to eq "John" + gender + is expected to be nil -an instance generated by a factory - registers the user factory +initialize_with non-ORM-backed objects + allows for overrides + generates random data -setting private attributes - raises a NoMethodError +implicit traits containing callbacks + only runs the callback once -FactoryBot.rewind_sequences - does not collide with globally registered factories - still allows global sequences prefixed with a factory name - resets inline sequences back to their starting value - resets all sequences back to their starting values - allows setting sequences within identically named traits +callbacks using syntax methods without referencing FactoryBot explicitly + works when the callback has one variable + works when the callback has two variables + works when the callback has no variables -looking up traits that don't exist - raises a KeyError +multiple creates and transient attributes to dynamically build attribute lists + allows the number of posts to be modified + generates the correct number of posts -initialize_with implicit constructor - instantiates the correct object +a built instance + is expected to be new record + when the :use_parent_strategy config option is set to false + assigns and saves associations + when the :use_parent_strategy config option is set to true + assigns but does not save associations -defining methods inside FactoryBot - raises with a meaningful message +applying inline traits + applies traits only to the instance generated for that call -using ActiveSupport::Instrumentation to track factory interaction - builds the correct payload - tracks proper time of creating the record +a custom create + uses the custom create block instead of save -associations - when accidentally using an implicit delcaration for the factory - raises an error about the trait not being registered +assigning overrides that are also private methods on object + more_format + is expected to eq "format: Great" + some_funky_method + is expected to eq "foobar!" + y + is expected to eq 12345 + format + is expected to eq "Great" -syntax methods within dynamic attributes - allows syntax methods to be used when the block has an arity of 1 - can access syntax methods from dynamic attributes - can access syntax methods from dynamic attributes - can access methods already existing on the class +initialize_with doesn't duplicate assignment on attributes accessed from initialize_with + instantiates the correct object -including FactoryBot::Syntax::Methods when custom strategies have been declared - allows adding additional strategies +initialize_with with FG attributes that are transient + name + is expected to eq "Handsome Chap from .construct" -aliases and overrides - one - is expected to eq "override" - two - is expected to be nil +setting private attributes + raises a NoMethodError -register custom strategies - allows using the *_pair method to build a list using a custom strategy - allows using the *_list method to build a list using a custom strategy - allows overriding default strategies - allows adding additional strategies +a custom create passing in an evaluator + passes the evaluator to the custom create block -sequences are evaluated in the correct context - allows direct reference of a method in a sequence - invokes a method with no arguments on the instance - invokes the correct method on the instance - builds a sequence calling sprintf correctly +defaulting `updated_at` + doesn't add updated_at to objects who don't have the method + allows overriding updated_at for objects with updated_at + behaves the same as a non-stubbed updated_at + is doesn't mark the object as changed + defaults updated_at for objects with updated_at + allows assignment of updated_at + doesn't allow setting updated_at on an object that doesn't define it -when a self-referential trait is defined - raises a TraitDefinitionError - raises a TraitDefinitionError +modifying inherited factories with traits + allows modification of attributes created via traits + returns the correct value for overridden attributes from traits defining multiple attributes + returns the correct value for overridden attributes from traits -initialize_with non-ORM-backed objects - allows for overrides - generates random data +making sure the factory is properly compiled the first time we want to instantiate it + can honor traits on the very first call + +transient attributes + without transient variables assigned + uses the default value of the attribute + returning attributes for a factory + is expected not to have key :rockstar + is expected not to have key :upcased + is expected to have key :email + is expected to have key :name + is expected not to have key :four + with a transient variable assigned + generates the correct attributes on an upcased rockstar + generates the correct attributes on a rockstar with a name + generates the correct attributes on a groupie + generates the correct attributes on a rockstar + +defaulting `created_at` + allows assignment of created_at + defaults created_at for objects with created_at + doesn't add created_at to objects who don't have the method + doesn't allow setting created_at on an object that doesn't define it + allows overriding created_at for objects with created_at + behaves the same as a non-stubbed created_at + is doesn't mark the object as changed + +a stubbed instance overriding strategy + assigns associations and acts as if it is saved + acts as if it is saved in the database attribute overrides with no user posting @@ -2283,44 +2172,220 @@ secure is expected to eq false -nested implicit traits - defined outside the factory - it should behave like assigning data from traits - assigns the correct values - defined inside the factory - it should behave like assigning data from traits - assigns the correct values +traits with initialize_with + can apply initialize_with from the definition + can apply initialize_with from traits + gives additional traits higher priority than base traits and factory definition + gives base traits lower priority than overrides + gives additional traits higher priority than initialize_with from the definition + gives base traits normal priority -transient sequences - increments sequences correctly +calling `build_stubbed` with a block + returns the stub instance + passes the stub instance -attribute aliases - assigning an association by foreign key - doesn't assign both an association and its foreign key - assigning an association by passing factory - assigns attributes correctly +association assignment from nested attributes + assigns the correct amount of comments when overridden + assigns the correct amount of comments -traits used in associations - allows inline traits with a specific factory for an association - allows assigning traits for the factory of an association - allows inline traits with the default association +a built instance with strategy: :create + assigns and saves associations + is expected to be new record + +build multiple instances + without default attributes + uses the default factory values + builds (but doesn't save) all the posts + length + is expected to eq 20 + with default attributes + overrides the default values + with a block + correctly uses the set value + +associations + when accidentally using an implicit delcaration for the factory + raises an error about the trait not being registered + +binding a callback to multiple callbacks + binds the callback to stubbing + binds the callback to creation + does not bind the callback to building + +initialize_with has access to all attributes for construction + assigns attributes correctly associations overriding :strategy uses the overridden create strategy to create the association -defaulting `updated_at` - doesn't add updated_at to objects who don't have the method - doesn't allow setting updated_at on an object that doesn't define it - allows overriding updated_at for objects with updated_at - is doesn't mark the object as changed - behaves the same as a non-stubbed updated_at - defaults updated_at for objects with updated_at - allows assignment of updated_at +an instance generated by a factory named a camel case string + registers the UserModel factory + +initialize_with parent and child factories + allows child factories to override initialize_with + uses the parent's constructor when the child factory doesn't assign it + +FactoryBot.rewind_sequences + does not collide with globally registered factories + still allows global sequences prefixed with a factory name + resets inline sequences back to their starting value + allows setting sequences within identically named traits + resets all sequences back to their starting values + +when a self-referential trait is defined + raises a TraitDefinitionError + raises a TraitDefinitionError + +initialize_with with an 'attributes' attribute + assigns attributes correctly + +defaulting `id` + allows overriding id + +create multiple instances + with a block + uses the new values + with default attributes + overrides the default values + without the count + raise ArgumentError with the proper error message + without default attributes + uses the default factory values + creates all the posts + length + is expected to eq 20 + +aliases and overrides + two + is expected to be nil + one + is expected to eq "override" + +a generated stub instance + disables toggle! + assigns a default attribute + disables destroy + allows toggle + disables reload + disables update_attribute + allows increment + generates unique ids + assigns associations + assigns associations that aren't new records + isn't changed + assigns an overridden attribute + disables decrement! + disables connection + disables increment! + disables save + has an id + allows decrement + isn't a new record + +defining a child factory before a parent + creates admin factories correctly + +using ActiveSupport::Instrumentation to track factory interaction + builds the correct payload + tracks proper time of creating the record + +an instance generated by a factory + registers the user factory + +traits and dynamic attributes that are applied simultaneously + email + is expected to eq "John@example.com" + name + is expected to eq "John" + combined + is expected to eq "John " + +looking up traits that don't exist + raises a KeyError + +a created instance, specifying strategy: :build + saves associations (strategy: :build only affects build, not create) + +syntax methods within dynamic attributes + allows syntax methods to be used when the block has an arity of 1 + can access methods already existing on the class + can access syntax methods from dynamic attributes + can access syntax methods from dynamic attributes `attributes_for` for a class whose constructor has required params [:name] is expected to eq "John Doe" +reload + does not reset the value of use_parent_strategy + +calling methods on the model instance + with the attribute being overridden + uses the overridden value + uses the overridden value during attributes_for + with the referenced attribute being overridden + uses the overridden value during attributes_for + uses the overridden value + without the attribute being overridden + returns the correct value from the instance + returns nil during attributes_for + doesn't instantiate a record with attributes_for + +an instance generated by a factory with a custom class name + is expected to be admin + is expected to be a kind of User(id: integer, admin: boolean) + +sequences + generates several values in the correct format + generates aliases for the sequence that reference the same block + generates aliases for the sequence that reference the same block and retains value + generates few values of the sequence + generates sequential numbers if no block is given + +a generated attributes hash + doesn't assign associations + assigns a lazy, dependent attribute + assigns a default value + assigns an overridden value + +calling `build` with a block + returns the built instance + passes the built instance + +custom callbacks + runs a custom before callback when the proper strategy executes + runs a custom after callback when the proper strategy executes + runs a custom callback without prepending before or after when the proper strategy executes + +a generated attributes hash where order matters + factory without a parent + assigns attributes in the order they're defined without a parent class + factory with a parent + assigns attributes in the order they're defined + +create multiple instances + without default attributes + uses the default factory values + creates all the posts + length + is expected to eq 2 + +sequences are evaluated in the correct context + builds a sequence calling sprintf correctly + invokes a method with no arguments on the instance + allows direct reference of a method in a sequence + invokes the correct method on the instance + +global initialize_with + handles inline trait override + handles child initialize_with + uses initialize_with globally across FactoryBot.define + handles child initialize_with with trait + handles base initialize_with + +skipping the default create + doesn't execute anything when creating the instance + traits with callbacks executes callbacks in the order assigned when the factory has an implicit trait @@ -2330,88 +2395,94 @@ name is expected to eq "JOHN" -callbacks using Symbol#to_proc - runs the callback correctly +attributes defined using Symbol#to_proc + assigns value with override correctly + assigns overridden value correctly + assigns values correctly -implicit traits containing callbacks - only runs the callback once +register custom strategies + allows overriding default strategies + allows using the *_pair method to build a list using a custom strategy + allows using the *_list method to build a list using a custom strategy + allows adding additional strategies + +global skip_create + honors overridden to_create + does not persist child records + does not persist any record + honors inline trait to_create + +a stubbed instance with no primary key + behaves like a persisted record + builds a stubbed instance + +FactoryBot.lint + allows for selective linting + raises when a factory is invalid + does not raise when all factories are valid + factory strategy for linting + uses the requested strategy + uses the requested strategy during trait validation + trait validation + disabled + does not raises if a trait produces an invalid object + enabled + does not raise if a trait produces a valid object + raises if a trait produces an invalid object + verbose linting + prints the backtrace for each factory error + +transient sequences + increments sequences correctly + +accessing methods from the instance within a dynamic attribute that is also a private method on object + more_format + is expected to eq "format: This is an awesome format" + +inline traits overriding existing attributes + prefers inline traits over attributes on factories + prefers traits on a factory over default attributes + prefers inline trait attributes over default attributes + prefers inline trait attributes over traits on a factory + prefers overridden attributes over attributes from traits, inline traits, or attributes on factories + returns the default status + prefers attributes on factories over attributes from non-inline traits traits added via strategy + adding traits in build + name + is expected to eq "Joe" + admin + is expected to equal true adding traits in attributes_for [:admin] is expected to equal true [:name] is expected to eq "John" - adding traits in build + adding traits in build_stubbed + name + is expected to eq "Jack" admin is expected to equal true - name - is expected to eq "Joe" + adding traits in create_list + creates all the records + length + is expected to eq 2 adding traits in build_list builds all the records length is expected to eq 2 - adding traits in build_stubbed - admin - is expected to equal true - name - is expected to eq "Jack" adding traits in create doesn't modify the user factory - name - is expected to eq "JOE" admin is expected to equal true - adding traits in create_list - creates all the records - length - is expected to eq 2 - -accessing methods from the instance within a dynamic attribute that is also a private method on object - more_format - is expected to eq "format: This is an awesome format" - -assigning overrides that are also private methods on object - some_funky_method - is expected to eq "foobar!" - format - is expected to eq "Great" - y - is expected to eq 12345 - more_format - is expected to eq "format: Great" - -trait indifferent access - when trait is defined as a symbol - can be invoked with a string - can be invoked with a symbol - when trait is defined as struct - can be invoked with a struct - can be invoked with a string - when trait is defined as a string - can be invoked with a symbol - can be invoked with a string - when trait is defined as integer - can be invoked with a string - can be invoked with as integer - -a generated attributes hash - doesn't assign associations - assigns a lazy, dependent attribute - assigns an overridden value - assigns a default value - -calling `create` with a block - returns the created instance - passes the created instance - -finding factories keyed by class instead of symbol - doesn't find the factory + name + is expected to eq "JOE" -Finished in 6.79 seconds (files took 1.32 seconds to load) +Finished in 8.1 seconds (files took 1.7 seconds to load) 343 examples, 0 failures -Randomized with seed 39120 +Randomized with seed 61781 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -2471,12 +2542,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/8836/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/8836/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/8153 and its subdirectories -I: Current time: Sun Aug 1 19:12:50 -12 2021 -I: pbuilder-time-stamp: 1627888370 +I: removing directory /srv/workspace/pbuilder/8836 and its subdirectories +I: Current time: Mon Aug 2 21:14:32 +14 2021 +I: pbuilder-time-stamp: 1627888472