Diff of the two buildlogs: -- --- b1/build.log 2021-05-17 03:03:38.377290128 +0000 +++ b2/build.log 2021-05-17 03:10:28.585295054 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Jun 18 21:26:04 -12 2022 -I: pbuilder-time-stamp: 1655630764 +I: Current time: Mon May 17 17:03:42 +14 2021 +I: pbuilder-time-stamp: 1621220622 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration @@ -17,8 +17,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.VBIdcPtp/trustedkeys.kbx': General error -gpgv: Signature made Mon Feb 3 03:39:04 2020 -12 +gpgv: keyblock resource '/tmp/dpkg-verify-sig.lWcS8mMr/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 @@ -30,137 +30,171 @@ 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/15163/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/32634/tmp/hooks/D01_modify_environment starting +debug: Running on ionos2-i386. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +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/32634/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/32634/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=18' - DISTRIBUTION='' - HOME='/root' - HOST_ARCH='i386' + 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]="i686-pc-linux-gnu") + 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=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=10' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='2d4355997c68440780fcd9da0b4667b7' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='15163' - PS1='# ' - PS2='> ' + INVOCATION_ID=bde63956b61d4330a24be448464a4e9f + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=32634 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.KLBvFy0pbX/pbuilderrc_y1sl --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.KLBvFy0pbX/b1 --logfile b1/build.log ruby-factory-bot_5.1.1-1.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://85.184.249.68:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/tmp.KLBvFy0pbX/pbuilderrc_8eSf --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.KLBvFy0pbX/b2 --logfile b2/build.log --extrapackages usrmerge ruby-factory-bot_5.1.1-1.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://78.137.99.97:3128 I: uname -a - Linux ionos16-i386 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux + Linux i-capture-the-hostname 4.19.0-16-686-pae #1 SMP Debian 4.19.181-1 (2021-03-19) i686 GNU/Linux I: ls -l /bin - total 5776 - -rwxr-xr-x 1 root root 1367848 Feb 24 2021 bash - -rwxr-xr-x 3 root root 38280 Jul 20 2020 bunzip2 - -rwxr-xr-x 3 root root 38280 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 38280 Jul 20 2020 bzip2 - -rwxr-xr-x 1 root root 17768 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 38824 Sep 22 2020 cat - -rwxr-xr-x 1 root root 71624 Sep 22 2020 chgrp - -rwxr-xr-x 1 root root 67528 Sep 22 2020 chmod - -rwxr-xr-x 1 root root 75752 Sep 22 2020 chown - -rwxr-xr-x 1 root root 157960 Sep 22 2020 cp - -rwxr-xr-x 1 root root 128724 Dec 10 2020 dash - -rwxr-xr-x 1 root root 124904 Sep 22 2020 date - -rwxr-xr-x 1 root root 92172 Sep 22 2020 dd - -rwxr-xr-x 1 root root 100752 Sep 22 2020 df - -rwxr-xr-x 1 root root 153964 Sep 22 2020 dir - -rwxr-xr-x 1 root root 83644 Feb 7 2021 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 34664 Sep 22 2020 echo - -rwxr-xr-x 1 root root 28 Nov 9 2020 egrep - -rwxr-xr-x 1 root root 34664 Sep 22 2020 false - -rwxr-xr-x 1 root root 28 Nov 9 2020 fgrep - -rwxr-xr-x 1 root root 71928 Feb 7 2021 findmnt - -rwsr-xr-x 1 root root 30112 Feb 26 2021 fusermount - -rwxr-xr-x 1 root root 210488 Nov 9 2020 grep - -rwxr-xr-x 2 root root 2346 Mar 2 2021 gunzip - -rwxr-xr-x 1 root root 6376 Mar 2 2021 gzexe - -rwxr-xr-x 1 root root 100952 Mar 2 2021 gzip - -rwxr-xr-x 1 root root 21916 Nov 6 2019 hostname - -rwxr-xr-x 1 root root 83980 Sep 22 2020 ln - -rwxr-xr-x 1 root root 55572 Feb 7 2020 login - -rwxr-xr-x 1 root root 153964 Sep 22 2020 ls - -rwxr-xr-x 1 root root 153124 Feb 7 2021 lsblk - -rwxr-xr-x 1 root root 96328 Sep 22 2020 mkdir - -rwxr-xr-x 1 root root 79912 Sep 22 2020 mknod - -rwxr-xr-x 1 root root 47048 Sep 22 2020 mktemp - -rwxr-xr-x 1 root root 58920 Feb 7 2021 more - -rwsr-xr-x 1 root root 50720 Feb 7 2021 mount - -rwxr-xr-x 1 root root 13856 Feb 7 2021 mountpoint - -rwxr-xr-x 1 root root 157996 Sep 22 2020 mv - lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 18 2021 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 38824 Sep 22 2020 pwd - lrwxrwxrwx 1 root root 4 Feb 24 2021 rbash -> bash - -rwxr-xr-x 1 root root 46984 Sep 22 2020 readlink - -rwxr-xr-x 1 root root 75720 Sep 22 2020 rm - -rwxr-xr-x 1 root root 46984 Sep 22 2020 rmdir - -rwxr-xr-x 1 root root 22292 Sep 27 2020 run-parts - -rwxr-xr-x 1 root root 125036 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jun 17 04:06 sh -> dash - -rwxr-xr-x 1 root root 34696 Sep 22 2020 sleep - -rwxr-xr-x 1 root root 83880 Sep 22 2020 stty - -rwsr-xr-x 1 root root 79396 Feb 7 2021 su - -rwxr-xr-x 1 root root 34696 Sep 22 2020 sync - -rwxr-xr-x 1 root root 602584 Feb 16 2021 tar - -rwxr-xr-x 1 root root 13860 Sep 27 2020 tempfile - -rwxr-xr-x 1 root root 108520 Sep 22 2020 touch - -rwxr-xr-x 1 root root 34664 Sep 22 2020 true - -rwxr-xr-x 1 root root 17768 Feb 26 2021 ulockmgr_server - -rwsr-xr-x 1 root root 30236 Feb 7 2021 umount - -rwxr-xr-x 1 root root 34664 Sep 22 2020 uname - -rwxr-xr-x 2 root root 2346 Mar 2 2021 uncompress - -rwxr-xr-x 1 root root 153964 Sep 22 2020 vdir - -rwxr-xr-x 1 root root 63024 Feb 7 2021 wdctl - lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Mar 2 2021 zcat - -rwxr-xr-x 1 root root 1678 Mar 2 2021 zcmp - -rwxr-xr-x 1 root root 5880 Mar 2 2021 zdiff - -rwxr-xr-x 1 root root 29 Mar 2 2021 zegrep - -rwxr-xr-x 1 root root 29 Mar 2 2021 zfgrep - -rwxr-xr-x 1 root root 2081 Mar 2 2021 zforce - -rwxr-xr-x 1 root root 7585 Mar 2 2021 zgrep - -rwxr-xr-x 1 root root 2206 Mar 2 2021 zless - -rwxr-xr-x 1 root root 1842 Mar 2 2021 zmore - -rwxr-xr-x 1 root root 4553 Mar 2 2021 znew -I: user script /srv/workspace/pbuilder/15163/tmp/hooks/D02_print_environment finished + total 5780 + -rwxr-xr-x 1 root root 1367848 Feb 25 10:57 bash + -rwxr-xr-x 3 root root 38280 Jul 21 2020 bunzip2 + -rwxr-xr-x 3 root root 38280 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 38280 Jul 21 2020 bzip2 + -rwxr-xr-x 1 root root 17768 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 38824 Sep 23 2020 cat + -rwxr-xr-x 1 root root 71624 Sep 23 2020 chgrp + -rwxr-xr-x 1 root root 67528 Sep 23 2020 chmod + -rwxr-xr-x 1 root root 75752 Sep 23 2020 chown + -rwxr-xr-x 1 root root 157960 Sep 23 2020 cp + -rwxr-xr-x 1 root root 128724 Dec 11 03:23 dash + -rwxr-xr-x 1 root root 124904 Sep 23 2020 date + -rwxr-xr-x 1 root root 92172 Sep 23 2020 dd + -rwxr-xr-x 1 root root 100752 Sep 23 2020 df + -rwxr-xr-x 1 root root 153964 Sep 23 2020 dir + -rwxr-xr-x 1 root root 83644 Feb 8 04:38 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 34664 Sep 23 2020 echo + -rwxr-xr-x 1 root root 28 Nov 10 2020 egrep + -rwxr-xr-x 1 root root 34664 Sep 23 2020 false + -rwxr-xr-x 1 root root 28 Nov 10 2020 fgrep + -rwxr-xr-x 1 root root 71928 Feb 8 04:38 findmnt + -rwsr-xr-x 1 root root 30112 Feb 27 06:12 fusermount + -rwxr-xr-x 1 root root 210488 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 100952 Mar 3 13:30 gzip + -rwxr-xr-x 1 root root 21916 Nov 8 2019 hostname + -rwxr-xr-x 1 root root 83980 Sep 23 2020 ln + -rwxr-xr-x 1 root root 55572 Feb 8 2020 login + -rwxr-xr-x 1 root root 153964 Sep 23 2020 ls + -rwxr-xr-x 1 root root 153124 Feb 8 04:38 lsblk + -rwxr-xr-x 1 root root 96328 Sep 23 2020 mkdir + -rwxr-xr-x 1 root root 79912 Sep 23 2020 mknod + -rwxr-xr-x 1 root root 47048 Sep 23 2020 mktemp + -rwxr-xr-x 1 root root 58920 Feb 8 04:38 more + -rwsr-xr-x 1 root root 50720 Feb 8 04:38 mount + -rwxr-xr-x 1 root root 13856 Feb 8 04:38 mountpoint + -rwxr-xr-x 1 root root 157996 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 38824 Sep 23 2020 pwd + lrwxrwxrwx 1 root root 4 Feb 25 10:57 rbash -> bash + -rwxr-xr-x 1 root root 46984 Sep 23 2020 readlink + -rwxr-xr-x 1 root root 75720 Sep 23 2020 rm + -rwxr-xr-x 1 root root 46984 Sep 23 2020 rmdir + -rwxr-xr-x 1 root root 22292 Sep 28 2020 run-parts + -rwxr-xr-x 1 root root 125036 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 May 17 17:06 sh -> bash + lrwxrwxrwx 1 root root 4 May 15 23:45 sh.distrib -> dash + -rwxr-xr-x 1 root root 34696 Sep 23 2020 sleep + -rwxr-xr-x 1 root root 83880 Sep 23 2020 stty + -rwsr-xr-x 1 root root 79396 Feb 8 04:38 su + -rwxr-xr-x 1 root root 34696 Sep 23 2020 sync + -rwxr-xr-x 1 root root 602584 Feb 17 23:55 tar + -rwxr-xr-x 1 root root 13860 Sep 28 2020 tempfile + -rwxr-xr-x 1 root root 108520 Sep 23 2020 touch + -rwxr-xr-x 1 root root 34664 Sep 23 2020 true + -rwxr-xr-x 1 root root 17768 Feb 27 06:12 ulockmgr_server + -rwsr-xr-x 1 root root 30236 Feb 8 04:38 umount + -rwxr-xr-x 1 root root 34664 Sep 23 2020 uname + -rwxr-xr-x 2 root root 2346 Mar 3 13:30 uncompress + -rwxr-xr-x 1 root root 153964 Sep 23 2020 vdir + -rwxr-xr-x 1 root root 63024 Feb 8 04:38 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/32634/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -355,7 +389,7 @@ Get: 141 http://deb.debian.org/debian bullseye/main i386 ruby-rspec-its all 1.3.0-1 [6864 B] Get: 142 http://deb.debian.org/debian bullseye/main i386 ruby-sqlite3 i386 1.4.2-3 [45.9 kB] Get: 143 http://deb.debian.org/debian bullseye/main i386 ruby-timecop all 0.9.1-1 [10.2 kB] -Fetched 45.9 MB in 1s (80.5 MB/s) +Fetched 45.9 MB in 9s (4905 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 ... 19674 files and directories currently installed.) @@ -951,8 +985,44 @@ 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.4 kB of archives. +After this operation, 156 kB of additional disk space will be used. +Get:1 http://deb.debian.org/debian bullseye/main i386 libnumber-compare-perl all 0.03-1.1 [6956 B] +Get:2 http://deb.debian.org/debian bullseye/main i386 libtext-glob-perl all 0.11-1 [8888 B] +Get:3 http://deb.debian.org/debian bullseye/main i386 libfile-find-rule-perl all 0.34-1 [30.6 kB] +Get:4 http://deb.debian.org/debian bullseye/main i386 usrmerge all 24 [13.0 kB] +debconf: delaying package configuration, since apt-utils is not installed +Fetched 59.4 kB in 0s (178 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 ... 28054 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_24_all.deb ... +Unpacking usrmerge (24) ... +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 (24) ... +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 +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 dpkg-buildpackage: info: source package ruby-factory-bot dpkg-buildpackage: info: source version 5.1.1-1 dpkg-buildpackage: info: source distribution unstable @@ -1005,56 +1075,56 @@ 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.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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_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/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/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/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/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/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 Rubygems integration metadata │ @@ -1076,36 +1146,37 @@ 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/i386-linux-gnu/ruby/gems/2.7.0:/usr/share/rubygems-integration/2.7.0:/usr/share/rubygems-integration/all:/usr/lib/i386-linux-gnu/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 16055 +Randomized with seed 726 -FactoryBot::Declaration::Implicit - #== - 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 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 - with a known sequence - creates a sequence attribute - does not create an assocition attribute - with a known factory - has the correct factory name - creates an association attribute - -FactoryBot::Attribute - is expected not to be association +FactoryBot::Factory with a string for a name name - is expected to eq :user + is expected to eq :string -FactoryBot::AttributeList#define_attribute - raises if an attribute has already been defined - maintains a list of attributes - returns the attribute +FactoryBot::Factory human names + factory name without underscores + human_names + is expected to eq ["user"] + 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"] + 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 with big letters + human_names + is expected to eq ["lol"] + names + is expected to eq [:LoL] + +FactoryBot::Attribute::Association with a string name + name + is expected to eq :name FactoryBot::DeclarationList#declare_attribute when overridable @@ -1114,340 +1185,166 @@ when not overridable adds the declaration to the list -FactoryBot::DefinitionProxy#transient - makes all attributes added ignored - -FactoryBot::EvaluatorClassDefiner - only instance_execs the block once even when returning nil - returns an evaluator when accessing the evaluator class - adds each attribute to the evaluator - sets attributes on the evaluator class - evaluates the block in the context of the evaluator - with a custom evaluator as a parent class - bases its attribute lists on itself and its parent evaluator - -FactoryBot::Factory - creates a new factory while overriding the parent class - returns associations - includes associations from the parent factory - guesses the build class from the factory name - has a build class - creates a new factory using the class of the parent - has a factory name - overriding an attribute with an alias - discards the predefined value for the attribute - uses the passed in value for the alias - when overriding generated attributes with a hash - overrides a symbol parameter with a string parameter - returns the overridden value in the generated attributes - -FactoryBot::Strategy::Build - 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 - runs the factory with the correct overrides - finds the factory with the correct factory name - it should behave like strategy with callbacks - runs the callbacks [:after_build] with the evaluation's object - returns the object from the evaluation - -FactoryBot::Attribute::Association with a string name - name - is expected to eq :name - -FactoryBot::Attribute::Sequence - assigns the next value in the sequence - name - is expected to eq :first_name - -FactoryBot::Sequence - a sequence with custom value and aliases - behaves like a sequence - after rewinding - next - is expected to eq "=3" - when incrementing - next - is expected to eq "=4" - next - is expected to eq "=3" - names - is expected to eq [:test, :alias, :other] - a custom sequence - behaves like a sequence - after rewinding - next - is expected to eq "=A" - next - is expected to eq "=A" - when incrementing - next - is expected to eq "=B" - a custom sequence without a block - behaves like a sequence - after rewinding - next - is expected to eq "A" - when incrementing - next - is expected to eq "B" - next - is expected to eq "A" - 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 - names - is expected to eq [:test] - behaves like a sequence - next - is expected to eq "=1" - when incrementing - next - is expected to eq "=2" - after rewinding - next - is expected to eq "=1" - a sequence with aliases using default value - behaves like a sequence - after rewinding - next - is expected to eq "=1" - next - is expected to eq "=1" - when incrementing - next - is expected to eq "=2" - names - is expected to eq [:test, :alias, :other] - iterating over items in an enumerator - navigates to the next items until no items remain - behaves like a sequence - next - is expected to eq "=foo" - when incrementing - next - is expected to eq "=bar" - after rewinding - next - is expected to eq "=foo" - a basic sequence without a block - behaves like a sequence - next - is expected to eq 1 - when incrementing - next - is expected to eq 2 - after rewinding - next - is expected to eq 1 - -FactoryBot::DefinitionProxy#factory - without options - with a block - with options - -FactoryBot::Callback - converts strings to symbols - runs its block with no parameters - has a name - allows valid callback names to be assigned - raises if an invalid callback name is assigned - runs its block with one parameter - runs its block with two parameters +FactoryBot::AttributeList generating names + knows all its #names for #non_ignored attributes + knows all its #names + knows all its #names for #associations + knows all its #names for #ignored attributes FactoryBot::Declaration::Dynamic #== - when the names are different + when the attributes are equal + the objects are equal + 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 blocks are different + when the names are different the objects are NOT equal - when the attributes are equal - the objects are equal - -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::Factory human names - 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] - factory name without underscores - human_names - is expected to eq ["user"] - names - is expected to eq [:user] - factory name with big letters - human_names - is expected to eq ["lol"] - 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"] - -FactoryBot::Factory with a string for a name - name - is expected to eq :string - -FactoryBot::AttributeList#apply_attributes - adds attributes in the order defined -FactoryBot::Registry - adds and returns the object registered - knows that an object is registered by symbol - clears registered factories - is expected to be a kind of Enumerable - raises when an object cannot be found - finds a registered object with square brackets - knows when an object is not registered - knows that an object is registered by string - does not include duplicate objects with registered under different names - iterates registered objects - finds a registered object - -FactoryBot::DeclarationList#attributes - returns an AttributeList - defines each attribute on the attribute list +FactoryBot::Callback + converts strings to symbols + raises if an invalid callback name is assigned + allows valid callback names to be assigned + runs its block with one parameter + has a name + runs its block with two parameters + runs its block with no parameters -FactoryBot::DefinitionProxy#add_attribute - declares a dynamic attribute on the factory +FactoryBot::AttributeList filter based on ignored attributes + filters #ignored attributes + filters #non_ignored attributes -FactoryBot - finds a registered trait - finds a registered strategy - finds a registered sequence - finds a registered factory - .use_parent_strategy - is true by default +FactoryBot::Decorator::DisallowsDuplicatesRegistry + raises when attempting to #register a previously registered strategy + delegates #register to the registry when not registered -FactoryBot::Factory with a name ending in s - build_class - is expected to eq Business +FactoryBot::Attribute::Dynamic with a string name name - is expected to eq :business - -FactoryBot::AttributeList#associations - returns associations - -FactoryBot::DefinitionProxy#method_missing - when called with a ':factory' key - declares an association - when called without args or a block - declares an implicit declaration - when called with a block - declares a dynamic attribute - when called with a static-attribute-like argument - raises a NoMethodError - -FactoryBot::Factory when defined with a custom class name - build_class - is expected to eq ArgumentError + is expected to eq :name -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::Factory running a factory + returns the result from the strategy when running + calls the block and returns the result + creates the right strategy using the build class when running -FactoryBot::Factory when defined with a custom class - build_class - is expected to eq Float +FactoryBot::EvaluatorClassDefiner + sets attributes on the evaluator class + only instance_execs the block once even when returning nil + adds each attribute to the evaluator + evaluates the block in the context of the evaluator + returns an evaluator when accessing the evaluator class + with a custom evaluator as a parent class + bases its attribute lists on itself and its parent evaluator -FactoryBot::Attribute::Dynamic with a string name - name - is expected to eq :name +FactoryBot::Definition + is expected to delegate :declare_attribute + #name + returns the name + #to_create + returns the assigned value when given a block + to_create + is expected to be nil + adding callbacks + maintains a list of callbacks + #overridable + sets the declaration list as overridable + with a name + creates a new attribute list with the name passed + defining traits + adds only unique traits + maintains a list of traits -FactoryBot::DefinitionProxy#initialize_with - defines the constructor on the definition +definition loading + 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 factories.rb + it should behave like finds definitions + is expected to load definitions from factories.rb + 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/person_factory.rb + is expected to load definitions from test/factories/post_factory.rb + 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 + with several factories files under test/factories in non-alphabetical order + loads the files in the right order + 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 nested and unnested factories files under spec + it should behave like finds definitions + is expected to load definitions from spec/factories.rb + is expected to load definitions from spec/factories/post_factory.rb + is expected to load definitions from spec/factories/person_factory.rb + with several factories files under spec/factories + 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 + 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 test/factories + 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/post_factory.rb -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 given a class that overrides #to_s + sets build_class correctly -FactoryBot::Strategy::Create - runs a custom create block - 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::Strategy::Build 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 runs the factory with the correct overrides + finds the factory with the correct factory name + it should behave like strategy with callbacks + returns the object from the evaluation + runs the callbacks [:after_build] with the evaluation's object -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::NullFactory - is expected to delegate :defined_traits - is expected to delegate :attributes - is expected to delegate :constructor - is expected to delegate :callbacks - attributes - is expected to be an instance of FactoryBot::AttributeList - class_name - is expected to be nil - evaluator_class - is expected to eq FactoryBot::Evaluator - compile - is expected to be nil - -FactoryBot::AttributeList filter based on ignored attributes - filters #non_ignored attributes - filters #ignored attributes +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 FactoryBot::DefinitionProxy adding callbacks - #after(:stub, :create) + #after(:stub) is expected to have callback :after_stub + #after(:stub, :create) is expected to have callback :after_create - #after(:stub) is expected to have callback :after_stub + #after(:create) + is expected to have callback :after_create #before(:stub, :create) is expected to have callback :before_create is expected to have callback :before_stub #after(:build) is expected to have callback :after_build - #after(:create) - is expected to have callback :after_create #callback(:after_stub, :before_create) is expected to have callback :after_stub is expected to have callback :before_create -FactoryBot::Definition - is expected to delegate :declare_attribute - adding callbacks - maintains a list of callbacks - defining traits - maintains a list of traits - adds only unique traits - with a name - creates a new attribute list with the name passed - #name - returns the name - #overridable - sets the declaration list as overridable - #to_create - returns the assigned value when given a block - to_create - is expected to be nil +FactoryBot::Attribute::Sequence + assigns the next value in the sequence + name + is expected to eq :first_name FactoryBot::Decorator::AttributeHash #attributes @@ -1455,785 +1352,892 @@ with an attribute called 'attributes' does not call itself recursively -FactoryBot::DefinitionProxy#association - declares an association - declares an association with options - when passing a block - raises an error +FactoryBot::DefinitionProxy#sequence + creates a new sequence starting at 1 + creates a new sequence with an overridden starting vaue + creates a new sequence with a block -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#add_attribute + declares a dynamic attribute on the factory + +FactoryBot::DefinitionProxy#factory + without options + with a block + with options + +FactoryBot::Strategy::Create + runs a custom create block + 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 + it should behave like strategy with association support + finds the factory with the correct factory name + runs the factory with the correct overrides FactoryBot::Internal - .register_trait - returns the registered trait - registers the provided trait - .strategy_by_name - finds a registered strategy - .sequence_by_name - finds a registered sequence + .register_factory + returns the registered factory + registers the provided factory .factory_by_name finds a registered factory - .register_strategy - register the provided strategy name with the class + .trait_by_name + finds a previously registered trait .rewind_sequences rewinds the sequences and the internal sequences - .factory_by_name - finds a registered factory - .register_factory - returns the registered factory - registers the provided factory default strategies and callbacks + registers the null strategy by default + registers the build_stubbed strategy by default + registers the create strategy by default registers the attributes_for strategy by default registers the build strategy by default + registers the after_stub by default registers the after_create by default - registers the build_stubbed strategy by default - registers the create strategy by default - registers the null strategy by default - registers the after_build by default registers the after_create by default - registers the after_stub by default + registers the after_build by default + .strategy_by_name + finds a registered strategy + .factory_by_name + finds a registered factory + .register_trait + returns the registered trait + registers the provided trait + .register_strategy + register the provided strategy name with the class + .sequence_by_name + finds a registered sequence .register_sequence registers the provided sequence returns the registered sequence .register_factory - returns the registered factory registers the provided factory - .trait_by_name - finds a previously registered trait + returns the registered factory -FactoryBot::DefinitionProxy#to_create - accepts a block to run in place of #save! +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::NullObject - does not respond to other methods - responds to the given methods +FactoryBot::Attribute + is expected not to be association + name + is expected to eq :user + +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 after defining an alias is expected to include :test_suffix_id is expected to include :test -FactoryBot::DefinitionProxy#add_attribute when the proxy ignores attributes - declares a dynamic attribute on the factory +FactoryBot::DefinitionProxy#to_create + accepts a block to run in place of #save! -FactoryBot::DefinitionProxy#trait - declares a trait +FactoryBot::Factory with a name ending in s + name + is expected to eq :business + build_class + is expected to eq Business -FactoryBot::Factory when defined with a class instead of a name +FactoryBot + finds a registered sequence + finds a registered trait + finds a registered strategy + finds a registered factory + .use_parent_strategy + is true by default + +FactoryBot::Factory + guesses the build class from the factory name + has a build class + includes associations from the parent factory + creates a new factory while overriding the parent class + has a factory name + returns associations + creates a new factory using the class of the parent + overriding an attribute with an alias + discards the predefined value for the attribute + uses the passed in value for the alias + when overriding generated attributes with a hash + overrides a symbol parameter with a string parameter + returns the overridden value in the generated attributes + +FactoryBot::DeclarationList#attributes + returns an AttributeList + defines each attribute on the attribute list + +FactoryBot::Factory when defined with a custom class name build_class is expected to eq ArgumentError - name - is expected to eq :argument_error - -FactoryBot::StrategyCalculator - when a symbol - returns the strategy found - finds the strategy by name - when a class - returns the class passed -FactoryBot::Decorator::DisallowsDuplicatesRegistry - delegates #register to the registry when not registered - raises when attempting to #register a previously registered strategy +FactoryBot::DefinitionProxy#trait + declares a trait -FactoryBot::Factory when given a class that overrides #to_s - sets build_class correctly +FactoryBot::Factory when defined with a custom class + build_class + is expected to eq Float FactoryBot::Strategy::Stub asking for a result + is expected not to be destroyed assigns created_at is expected to be persisted - is expected not to be destroyed is expected not to be new record - overriding persistence method: #destroy + overriding persistence method: #destroy! 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: #touch + overriding persistence method: #update + overrides the method with any arity raises an informative error if the method is called + overriding persistence method: #update_attribute overrides the method with any arity - overriding persistence method: #increment! + raises an informative error if the method is called + overriding persistence method: #update_attributes raises an informative error if the method is called overrides the method with any arity overriding persistence method: #save! overrides the method with any arity raises an informative error if the method is called - overriding persistence method: #update_attribute - raises an informative error if the method is called + overriding persistence method: #increment! overrides the method with any arity - overriding persistence method: #update_attributes! raises an informative error if the method is called + overriding persistence method: #update_attributes! overrides the method with any arity - overriding persistence method: #reload + 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_column raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #toggle! + overriding persistence method: #save raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #update_column + overriding persistence method: #update_columns overrides the method with any arity raises an informative error if the method is called - overriding persistence method: #update_attributes - overrides the method with any arity + overriding persistence method: #update! raises an informative error if the method is called - overriding persistence method: #connection + overrides the method with any arity + overriding persistence method: #destroy overrides the method with any arity raises an informative error if the method is called overriding persistence method: #decrement! raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #update! - raises an informative error if the method is called - overrides the method with any arity - overriding persistence method: #update + overriding persistence method: #connection raises an informative error if the method is called overrides the method with any arity overriding persistence method: #delete raises an informative error if the method is called overrides the method with any arity - overriding persistence method: #update_columns - overrides the method with any arity + overriding persistence method: #toggle! raises an informative error if the method is called - it should behave like strategy with association support - runs the factory with the correct overrides - finds the factory with the correct factory name + overrides the method with any arity it should behave like strategy with strategy: :build runs the factory with the correct overrides finds the factory with the correct factory name it should behave like strategy with callbacks returns the object from the evaluation runs the callbacks [:after_stub] 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 + +FactoryBot::AttributeList#define_attribute + raises if an attribute has already been defined + returns the attribute + maintains a list of attributes + +FactoryBot::StrategyCalculator + when a symbol + finds the strategy by name + returns the strategy found + when a class + returns the class passed + +FactoryBot::DefinitionProxy#method_missing + when called without args or a block + declares an implicit declaration + when called with a ':factory' key + declares an association + when called with a static-attribute-like argument + raises a NoMethodError + when called with a block + declares a dynamic attribute + +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::AttributeList#apply_attributes + adds attributes in the order defined + +FactoryBot::Declaration::Implicit + with a known sequence + does not create an assocition attribute + creates a sequence attribute + #== + when the attributes are equal + the objects are equal + when comparing against another type of object + the objects are NOT 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 the names are different + the objects are NOT equal + with a known factory + creates an association attribute + has the correct factory name + +FactoryBot::DefinitionProxy#initialize_with + defines the constructor on the definition + +FactoryBot::Declaration::Association + #== + when the options 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 + +FactoryBot::AttributeList#associations + returns associations + +FactoryBot::DefinitionProxy#association + declares an association + declares an association with options + when passing a block + raises an error + +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::DefinitionProxy#transient + makes all attributes added ignored + +FactoryBot::Sequence + a sequence with custom value and aliases + names + is expected to eq [:test, :alias, :other] + behaves like a sequence + after rewinding + next + is expected to eq "=3" + next + is expected to eq "=3" + when incrementing + next + is expected to eq "=4" + a basic sequence + behaves like a sequence + when incrementing + next + is expected to eq "=2" + next + is expected to eq "=1" + after rewinding + next + is expected to eq "=1" + names + is expected to eq [:test] + name + is expected to eq :test + a sequence with aliases using default value + names + is expected to eq [:test, :alias, :other] + behaves like a sequence + when incrementing + next + is expected to eq "=2" + after rewinding + next + is expected to eq "=1" + next + 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 "=foo" + when incrementing + next + is expected to eq "=bar" + next + is expected to eq "=foo" + a custom sequence without a block + behaves like a sequence + next + is expected to eq "A" + after rewinding + next + is expected to eq "A" + when incrementing + next + is expected to eq "B" + a custom sequence + behaves like a sequence + after rewinding + next + is expected to eq "=A" + next + is expected to eq "=A" + when incrementing + next + is expected to eq "=B" + a basic sequence without a block + behaves like a sequence + next + is expected to eq 1 + when incrementing + next + is expected to eq 2 + after rewinding + next + is expected to eq 1 + a custom sequence and scope + increments within the correct scope + after rewinding + increments within the correct scope + when incrementing + increments within the correct scope + +FactoryBot::DefinitionProxy#add_attribute when the proxy ignores attributes + declares a dynamic attribute on the factory + +FactoryBot::Registry + knows when an object is not registered + finds a registered object with square brackets + knows that an object is registered by string + adds and returns the object registered + is expected to be a kind of Enumerable + knows that an object is registered by symbol + raises when an object cannot be found + iterates registered objects + does not include duplicate objects with registered under different names + clears registered factories + finds a registered object FactoryBot aliases - aliases for an attribute + aliases for a foreign key is expected to include :test_id is expected to include :test - aliases for a foreign key + aliases for an attribute is expected to include :test_id is expected to include :test aliases for an attribute starting with an underscore is expected not to include :id +FactoryBot::NullFactory + is expected to delegate :constructor + is expected to delegate :callbacks + is expected to delegate :attributes + is expected to delegate :defined_traits + evaluator_class + is expected to eq FactoryBot::Evaluator + compile + is expected to be nil + class_name + is expected to be nil + attributes + is expected to be an instance of FactoryBot::AttributeList + +FactoryBot::NullObject + responds to the given methods + does not respond to other methods + FactoryBot::Attribute::Dynamic + 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 - with a block returning a sequence - raises a sequence abuse error name is expected to eq :first_name - with a block returning its block-level variable - returns self when executing the proc 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 -FactoryBot::Declaration::Association - #== - when comparing against another type of object - the objects are NOT equal - when the attributes are equal - the objects are equal - when the options are different - the objects are NOT equal - when the names are different - the objects are NOT equal - -definition loading - with a factories file under test - it should behave like finds definitions - is expected to load definitions from test/factories.rb - with a factories file under spec - it should behave like finds definitions - is expected to load definitions from spec/factories.rb - 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 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 factories.rb - it should behave like finds definitions - is expected to load definitions from factories.rb - with several factories files under spec/factories in non-alphabetical order - loads the files in the right order - 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 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/person_factory.rb - is expected to load definitions from spec/factories/post_factory.rb - is expected to load definitions from spec/factories.rb - with several factories files under test/factories - 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/post_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 test/factories in non-alphabetical order - loads the files in the right order - 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 - -FactoryBot::Factory running a factory - calls the block and returns the result - returns the result from the strategy when running - creates the right strategy using the build class when running - -FactoryBot::Strategy::AttributesFor - does not run the to_create block - returns the hash from the evaluation - it should behave like strategy without association support - returns nil when accessing an association - -Finished in 0.4964 seconds (files took 0.50767 seconds to load) +Finished in 1.54 seconds (files took 1.8 seconds to load) 307 examples, 0 failures -Randomized with seed 16055 +Randomized with seed 726 /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 43689 +Randomized with seed 55864 -reload - does not reset the value of use_parent_strategy +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 -initialize_with for a constructor that requires a block - executes the block correctly +register custom strategies + allows using the *_list method to build a list using a custom strategy + allows overriding default strategies + allows adding additional strategies + allows using the *_pair method to build a list using a custom strategy -a custom create - uses the custom create block instead of save +binding a callback to multiple callbacks + binds the callback to stubbing + binds the callback to creation + does not bind the callback to building -calling `build` with a block - returns the built instance - passes the built instance +defaulting `id` + allows overriding id -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 +associations overriding :strategy + uses the overridden create strategy to create the association -transient attributes - with a transient variable assigned - generates the correct attributes on a groupie - generates the correct attributes on an upcased rockstar - generates the correct attributes on a rockstar with a name - generates the correct attributes on a rockstar - returning attributes for a factory - is expected not to have key :four - is expected to have key :name - is expected not to have key :upcased - is expected to have key :email - is expected not to have key :rockstar - without transient variables assigned - uses the default value of the attribute +when a self-referential trait is defined + raises a TraitDefinitionError + raises a TraitDefinitionError -a generated attributes hash where order matters - factory with a parent - assigns attributes in the order they're defined - factory without a parent - assigns attributes in the order they're defined without a parent class +FactoryBot.lint + allows for selective linting + does not raise when all factories are valid + raises when a factory is invalid + trait validation + enabled + does not raise if a trait produces a valid object + raises if a trait produces an invalid object + disabled + does not raises if a trait produces an invalid object + verbose linting + prints the backtrace for each factory error + factory strategy for linting + uses the requested strategy during trait validation + uses the requested strategy -calling `create` with a block - passes the created instance - returns the created instance +nested factories with different parents + honors :parent over the factory block nesting -global to_create - handles inline trait override - handles child to_create with trait - uses to_create globally across FactoryBot.define - handles child to_create - handles base to_create +defining a child factory before a parent + creates admin factories correctly + +global skip_create + honors overridden to_create + honors inline trait to_create + does not persist child records + does not persist any record + +calling `attributes_for` with a block + passes the hash of attributes + returns the hash of attributes looking up traits that don't exist raises a KeyError -attribute overrides - with a non-admin posting - secure - is expected to be nil - with no user posting - secure - is expected to be nil - with an admin posting - secure - is expected to eq false +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 -a stubbed instance overriding strategy - acts as if it is saved in the database - assigns associations and acts as if it is saved +create multiple instances + without default attributes + uses the default factory values + creates all the posts + length + is expected to eq 2 -initialize_with implicit constructor - instantiates the correct object +FactoryBot.rewind_sequences + still allows global sequences prefixed with a factory name + does not collide with globally registered factories + allows setting sequences within identically named traits + resets all sequences back to their starting values + resets inline sequences back to their starting value -a generated attributes hash - assigns a lazy, dependent attribute - assigns a default value - doesn't assign associations - assigns an overridden value +including FactoryBot::Syntax::Methods when custom strategies have been declared + allows adding additional strategies -initialize_with doesn't duplicate assignment on attributes accessed from initialize_with +initialize_with implicit constructor instantiates the correct object -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" - -traits with callbacks - executes callbacks in the order assigned - when the factory has an implicit trait - name - is expected to eq "JOHN" - when the factory has a trait passed via arguments - name - is expected to eq "JOHN" - -sequences are evaluated in the correct context - invokes a method with no arguments on the instance - allows direct reference of a method in a sequence - builds a sequence calling sprintf correctly - invokes the correct method on the instance - -global callbacks - triggers after build callbacks for all factories - -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 - traits added via strategy - adding traits in create_list - creates all the records - length - is expected to eq 2 adding traits in build admin is expected to equal true name is expected to eq "Joe" - 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 adding traits in build_list builds all the records length is expected to eq 2 + adding traits in build_stubbed + name + is expected to eq "Jack" + 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_stubbed + adding traits in create + doesn't modify the user factory + name + is expected to eq "JOE" admin is expected to equal true - name - is expected to eq "Jack" - -calling methods on the model instance - without the attribute being overridden - doesn't instantiate a record with attributes_for - returns the correct value from the instance - 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 - uses the overridden value during attributes_for -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 + behaves like a persisted record + builds a stubbed instance -finding factories keyed by class instead of symbol - doesn't find the factory +trait indifferent access + when trait is defined as struct + can be invoked with a string + can be invoked with a struct + when trait is defined as a symbol + can be invoked with a symbol + 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 -calling `attributes_for` with a block - returns the hash of attributes - passes the hash of attributes +transient sequences + increments sequences correctly defaulting `updated_at` is doesn't mark the object as changed - allows assignment of updated_at - behaves the same as a non-stubbed updated_at doesn't add updated_at to objects who don't have the method + behaves the same as a non-stubbed updated_at doesn't allow setting updated_at on an object that doesn't define it - defaults updated_at for objects with updated_at + allows assignment of updated_at allows overriding updated_at for objects with updated_at + defaults updated_at for objects with updated_at -callbacks using Symbol#to_proc - runs the callback correctly - -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 - -an instance generated by a factory named a camel case string - registers the UserModel factory - -an instance generated by a factory with multiple traits - the child with multiple traits - 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 - gender - is expected to be nil - name - is expected to eq "Jill" - the other child class with one trait - is expected not to be admin - gender - is expected to eq "Female" - name - is expected to eq "Jane" - the child class with one trait - is expected to be admin - name - is expected to eq "John" - gender - is expected to be nil - factory outside of scope - raises an error - 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" - 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" - 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" - factory with trait defined multiple times - child factory redefining trait - great - is expected to eq "EVEN GREATER!!!" - great - is expected to eq "GREAT!!!" - child factory using grandparents' trait - great - is expected to eq "GREAT!!!" - 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 parent class - is expected not to be admin - gender - is expected to be nil - name - is expected to eq "John" - factory using global trait - email - is expected to eq "Bill@example.com" - name - is expected to eq "Bill" +assigning values from a transient attribute + does not ignore an _id attribute that is an alias for a transient attribute -when a self-referential trait is defined - raises a TraitDefinitionError - raises a TraitDefinitionError +calling methods on the model instance + without the attribute being overridden + doesn't instantiate a record with attributes_for + returns nil during attributes_for + returns the correct value from the instance + with the referenced attribute being overridden + uses the overridden value during attributes_for + uses the overridden value + with the attribute being overridden + uses the overridden value + uses the overridden value during attributes_for -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" +initialize_with with an 'attributes' attribute + assigns attributes correctly -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 +global to_create + handles inline trait override + handles child to_create with trait + handles base to_create + uses to_create globally across FactoryBot.define + handles child to_create -associations - when accidentally using an implicit delcaration for the factory - raises an error about the trait not being registered +callbacks using syntax methods without referencing FactoryBot explicitly + works when the callback has no variables + works when the callback has one variable + works when the callback has two variables -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 +global callbacks + triggers after build callbacks for all factories -attributes defined using Symbol#to_proc - assigns value with override correctly - assigns overridden value correctly - assigns values correctly +aliases and overrides + two + is expected to be nil + one + is expected to eq "override" -a created instance, specifying strategy: :build - saves associations (strategy: :build only affects build, not create) +sequences + generates aliases for the sequence that reference the same block and retains value + generates sequential numbers if no block is given + generates few values of the sequence + generates aliases for the sequence that reference the same block + generates several values in the correct format -defaulting `created_at` - doesn't add created_at to objects who don't have the method - allows assignment of created_at - defaults created_at for objects with created_at - doesn't allow setting created_at on an object that doesn't define it - is doesn't mark the object as changed - allows overriding created_at for objects with created_at - behaves the same as a non-stubbed created_at +initialize_with non-ORM-backed objects + generates random data + allows for overrides -initialize_with has access to all attributes for construction - assigns attributes correctly +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 a generated stub instance - assigns a default attribute - isn't changed - allows increment - disables destroy - has an id - disables increment! - disables update_attribute - disables reload - allows toggle - allows decrement - assigns associations that aren't new records + disables toggle! disables save + disables connection disables decrement! generates unique ids - assigns an overridden attribute + disables reload assigns associations - disables connection isn't a new record - disables toggle! + assigns a default attribute + allows decrement + allows increment + assigns an overridden attribute + isn't changed + disables update_attribute + disables increment! + assigns associations that aren't new records + has an id + disables destroy + allows toggle -sequences - generates several values in the correct format - generates sequential numbers if no block is given - generates aliases for the sequence that reference the same block - generates few values of the sequence - generates aliases for the sequence that reference the same block and retains value +using ActiveSupport::Instrumentation to track factory interaction + builds the correct payload + tracks proper time of creating the record -defining a child factory before a parent - creates admin factories correctly +initialize_with with FG attributes that are transient + name + is expected to eq "Handsome Chap from .construct" -callbacks using syntax methods without referencing FactoryBot explicitly - works when the callback has no variables - works when the callback has one variable - works when the callback has two variables +assigning overrides that are also private methods on object + some_funky_method + is expected to eq "foobar!" + y + is expected to eq 12345 + more_format + is expected to eq "format: Great" + format + is expected to eq "Great" -syntax methods within dynamic attributes - can access syntax methods from dynamic attributes - can access methods already existing on the class - can access syntax methods from dynamic attributes - allows syntax methods to be used when the block has an arity of 1 +a custom create passing in an evaluator + passes the evaluator to the custom create block + +multiple creates and transient attributes to dynamically build attribute lists + generates the correct number of posts + allows the number of posts to be modified + +calling `create` with a block + passes the created instance + returns the created instance + +an instance generated by a factory named a camel case string + registers the UserModel factory 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 + is expected to be a kind of User(id: integer, name: string, admin: boolean, email: string, upper_email: string, login: string) + login + is expected to eq "admin@example.com" + email + is expected to eq "admin@example.com" name is expected to eq "admin" 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" the parent class is expected not to be admin - login - is expected to eq "john@example.com" email is expected to eq "john@example.com" name is expected to eq "John" + login + is expected to eq "john@example.com" + +`attributes_for` for a class whose constructor has required params + [:name] + is expected to eq "John Doe" + +initialize_with doesn't duplicate assignment on attributes accessed from initialize_with + instantiates the correct object a stubbed instance acts as if it came from the database assigns associations and acts as if it is saved +declaring attributes on a Factory that are private methods on Object + link + is expected to eq "http://example.com" + sleep + is expected to eq -5 + system + is expected to eq false + callbacks + runs both the after(:build) and after(:create) callbacks when creating runs child callback after parent callback - runs the after(:build) callback when building runs the after(:stub) callback when stubbing - 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 + runs the after(:build) callback when building -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 +syntax methods within dynamic attributes + can access syntax methods from dynamic attributes + can access methods already existing on the class + can access syntax methods from dynamic attributes + allows syntax methods to be used when the block has an arity of 1 + +calling `build` with a block + passes the built instance + returns the built instance + +a stubbed instance overriding strategy + acts as if it is saved in the database + assigns associations and acts as if it is saved + +an instance generated by a factory + registers the user factory global initialize_with + handles inline trait override + handles child initialize_with with trait handles base initialize_with uses initialize_with globally across FactoryBot.define handles child initialize_with - handles inline trait override - handles child initialize_with with trait - -transient sequences - increments sequences correctly - -traits with initialize_with - can apply initialize_with from traits - gives additional traits higher priority than initialize_with from the definition - gives base traits lower priority than overrides - gives base traits normal priority - gives additional traits higher priority than base traits and factory definition - can apply initialize_with from the definition making sure the factory is properly compiled the first time we want to instantiate it can honor traits on the very first call -defaulting `id` - allows overriding id +initialize_with with non-FG attributes + age + is expected to eq 21 + name + is expected to eq "John Doe" -multiple creates and transient attributes to dynamically build attribute lists - generates the correct number of posts - allows the number of posts to be modified +custom callbacks + runs a custom after callback when the proper strategy executes + runs a custom before callback when the proper strategy executes + runs a custom callback without prepending before or after when the proper strategy executes -FactoryBot.lint - allows for selective linting - does not raise when all factories are valid - raises when a factory is invalid - trait validation - disabled - does not raises if a trait produces an invalid object - enabled - raises if a trait produces an invalid object - does not raise if a trait produces a valid 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 +associations + when accidentally using an implicit delcaration for the factory + raises an error about the trait not being registered -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 +initialize_with has access to all attributes for construction + assigns attributes correctly -a custom create passing in an evaluator - passes the evaluator to the custom create block +inline traits overriding existing attributes + returns the default status + prefers inline trait attributes over traits on a factory + prefers attributes on factories over attributes from non-inline traits + prefers overridden attributes over attributes from traits, inline traits, or attributes on factories + prefers traits on a factory over default attributes + prefers inline traits over attributes on factories + prefers inline trait attributes over default attributes -using ActiveSupport::Instrumentation to track factory interaction - tracks proper time of creating the record - builds the correct payload +traits with initialize_with + gives additional traits higher priority than base traits and factory definition + gives base traits lower priority than overrides + gives base traits normal priority + can apply initialize_with from the definition + can apply initialize_with from traits + gives additional traits higher priority than initialize_with from the definition -global skip_create - does not persist child records - honors overridden to_create - honors inline trait to_create - does not persist any record +a generated attributes hash + assigns a lazy, dependent attribute + assigns an overridden value + doesn't assign associations + assigns a default value + +initialize_with for a constructor that requires a block + executes the block correctly + +traits used in associations + allows inline traits with the default association + allows inline traits with a specific factory for an association + allows assigning traits for the factory of an association implicit traits containing callbacks only runs the callback once -initialize_with non-ORM-backed objects - generates random data - allows for overrides +applying inline traits + applies traits only to the instance generated for that call -association assignment from nested attributes - assigns the correct amount of comments when overridden - assigns the correct amount of comments +traits with callbacks + executes callbacks in the order assigned + when the factory has an implicit trait + name + is expected to eq "JOHN" + when the factory has a trait passed via arguments + name + is expected to eq "JOHN" + +traits and dynamic attributes that are applied simultaneously + email + is expected to eq "John@example.com" + combined + is expected to eq "John " + name + is expected to eq "John" + +defining methods inside FactoryBot + raises with a meaningful message 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 - adding callbacks - name - is expected to eq "great user" - login - is expected to be nil + doesn't overwrite already defined child's attributes redefining attributes - creating user + creating admin overriding the name - name - is expected to eq "wonderful" email is expected to eq "wonderful-modified@example.com" - overriding the email - 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" - creating admin - overriding the name admin is expected to equal true name is expected to eq "wonderful" - email - is expected to eq "wonderful-modified@example.com" overriding the email email is expected to eq "perfect@example.com" + name + is expected to eq "Great User" admin is expected to equal true + without overrides name is expected to eq "Great User" - without overrides admin is expected to equal true + email + is expected to eq "Great User-modified@example.com" + creating user + overriding the name + email + is expected to eq "wonderful-modified@example.com" name - is expected to eq "Great User" + is expected to eq "wonderful" + without overrides email is expected to eq "Great User-modified@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" + name + is expected to eq "Great User" + overriding the email + email + is expected to eq "perfect@example.com" + name + is expected to eq "Great User" simple modification does allow the factory to be subsequently modified doesn't allow the factory to be subsequently defined @@ -2241,180 +2245,246 @@ is expected to eq "Great User" login is expected to eq "GREAT USER" + adding callbacks + name + is expected to eq "great user" + login + is expected to be nil + reusing traits + email + is expected to eq "Johnny Rockstar!!!@example.com" + login + is expected to eq "JOHNNY ROCKSTAR!!!" + name + is expected to eq "Johnny Rockstar!!!" -nested factories with different parents - honors :parent over the factory block nesting +attribute overrides + with an admin posting + secure + is expected to eq false + with no user posting + secure + is expected to be nil + with a non-admin posting + secure + is expected to be nil -trait indifferent access - 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 as integer - can be invoked with a string - when trait is defined as struct - can be invoked with a string - can be invoked with a struct - when trait is defined as a symbol - can be invoked with a symbol - can be invoked with a string +calling `build_stubbed` with a block + returns the stub instance + passes the stub instance -an instance generated by a factory - registers the user factory +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 -a created instance +association assignment from nested attributes + assigns the correct amount of comments when overridden + assigns the correct amount of comments + +a built instance with strategy: :create assigns and saves associations - is expected not to be new record + is expected to be new record -register custom strategies - allows adding additional strategies - allows overriding default strategies - allows using the *_list method to build a list using a custom strategy - allows using the *_pair method to build a list using a custom strategy +a custom create + uses the custom create block instead of save + +attributes defined using Symbol#to_proc + assigns value with override correctly + assigns values correctly + assigns overridden value correctly + +a created instance + is expected not to be new record + assigns and saves associations traits with to_create - gives base traits lower priority than overrides can apply to_create from the definition - gives additional traits higher priority than to_create from the definition can apply to_create from traits - gives additional traits higher priority than base traits and factory definition + gives additional traits higher priority than to_create from the definition + gives base traits lower priority than overrides gives base traits normal priority + gives additional traits higher priority than base traits and factory definition -setting private attributes - raises a NoMethodError - -create multiple instances - with a block - uses the new values - without the count - raise ArgumentError with the proper error message - 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 - -a stubbed instance with no primary key - behaves like a persisted record - builds a stubbed instance - -binding a callback to multiple callbacks - binds the callback to creation - binds the callback to stubbing - does not bind the callback to building - -defining methods inside FactoryBot - raises with a meaningful message - -initialize_with with non-FG attributes - age - is expected to eq 21 - name - is expected to eq "John Doe" - -traits used in associations - allows inline traits with the default association - allows assigning traits for the factory of an association - allows inline traits with a specific factory for an association +transient attributes + returning attributes for a factory + is expected not to have key :rockstar + is expected to have key :name + is expected not to have key :four + is expected to have key :email + is expected not to have key :upcased + with a transient variable assigned + generates the correct attributes on a rockstar with a name + generates the correct attributes on an upcased rockstar + generates the correct attributes on a rockstar + generates the correct attributes on a groupie + without transient variables assigned + uses the default value of the attribute -inline traits overriding existing attributes - prefers inline trait attributes over traits on a factory - prefers attributes on factories over attributes from non-inline traits - returns the default status - prefers overridden attributes over attributes from traits, inline traits, or attributes on factories - prefers traits on a factory over default attributes - prefers inline trait attributes over default attributes - prefers inline traits over attributes on factories +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 -traits and dynamic attributes that are applied simultaneously - combined - is expected to eq "John " - email - is expected to eq "John@example.com" - name - is expected to eq "John" +callbacks using Symbol#to_proc + runs the callback correctly 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 -FactoryBot.rewind_sequences - still allows global sequences prefixed with a factory name - resets inline sequences back to their starting value - does not collide with globally registered factories - resets all sequences back to their starting values - allows setting sequences within identically named traits - -initialize_with with an 'attributes' attribute - assigns attributes correctly +a created instance, specifying strategy: :build + saves associations (strategy: :build only affects build, not create) -initialize_with with FG attributes that are transient - name - is expected to eq "Handsome Chap from .construct" +reload + does not reset the value of use_parent_strategy -calling `build_stubbed` with a block - passes the stub instance - returns the stub instance +defaulting `created_at` + allows overriding created_at for objects with created_at + is doesn't mark the object as changed + allows assignment of created_at + doesn't allow setting created_at on an object that doesn't define it + doesn't add created_at to objects who don't have the method + defaults created_at for objects with created_at + behaves the same as a non-stubbed created_at -create multiple instances +build multiple instances + with a block + correctly uses the set value + with default attributes + overrides the default values without default attributes + builds (but doesn't save) all the posts uses the default factory values - creates all the posts length - is expected to eq 2 - -associations overriding :strategy - uses the overridden create strategy to create the association + is expected to eq 20 -`attributes_for` for a class whose constructor has required params - [:name] - is expected to eq "John Doe" +an instance generated by a factory with multiple traits + the child with multiple traits and overridden attributes + is expected to be admin + gender + is expected to be nil + name + is expected to eq "Jill" + the parent class + is expected not to be admin + name + is expected to eq "John" + gender + is expected to be nil + child factory using grandparents' trait + great + is expected to eq "GREAT!!!" + the child with multiple traits + is expected to be admin + name + is expected to eq "Jane" + gender + is expected to eq "Female" + child factory created where trait attributes are inherited + gender + is expected to eq "Male" + date_of_birth + is expected to eq Sat, 01 Jan 2000 + factory outside of scope + raises an error + the child with multiple traits who override the same attribute + when the female assigns name after male + is expected to be admin + gender + is expected to eq "Female" + name + is expected to eq "Jane" + when the male assigns name after female + is expected to be admin + name + is expected to eq "Joe" + gender + is expected to eq "Male" + the other child class with one trait + is expected not to be admin + gender + is expected to eq "Female" + name + is expected to eq "Jane" + 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 class with one trait + is expected to be admin + name + is expected to eq "John" + gender + is expected to be nil + factory created with alternate syntax for specifying trait + gender + is expected to eq "Male" + 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!!!" + child class with scoped trait and inherited trait + is expected to be admin + gender + is expected to eq "Female" + name + is expected to eq "Judy" + factory using global trait + email + is expected to eq "Bill@example.com" + name + is expected to eq "Bill" skipping the default create doesn't execute anything when creating the instance -aliases and overrides - one - is expected to eq "override" - two - is expected to be nil +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) -a built instance with strategy: :create - is expected to be new record - assigns and saves associations +sequences are evaluated in the correct context + invokes a method with no arguments on the instance + builds a sequence calling sprintf correctly + invokes the correct method on the instance + allows direct reference of a method in a sequence -applying inline traits - applies traits only to the instance generated for that call +setting private attributes + raises a NoMethodError -including FactoryBot::Syntax::Methods when custom strategies have been declared - allows adding additional strategies +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 -declaring attributes on a Factory that are private methods on Object - system - is expected to eq false - link - is expected to eq "http://example.com" - sleep - is expected to eq -5 +a generated attributes hash where order matters + factory with a parent + assigns attributes in the order they're defined + factory without a parent + assigns attributes in the order they're defined without a parent class -build multiple instances - without default attributes - builds (but doesn't save) all the posts - uses the default factory values - length - is expected to eq 20 - with default attributes - overrides the default values - with a block - correctly uses the set value +finding factories keyed by class instead of symbol + doesn't find the factory + +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" -Finished in 2.72 seconds (files took 0.52016 seconds to load) +Finished in 7.54 seconds (files took 2.46 seconds to load) 343 examples, 0 failures -Randomized with seed 43689 +Randomized with seed 55864 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -2473,12 +2543,14 @@ dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/32634/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/32634/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/15163 and its subdirectories -I: Current time: Sat Jun 18 21:26:37 -12 2022 -I: pbuilder-time-stamp: 1655630797 +I: removing directory /srv/workspace/pbuilder/32634 and its subdirectories +I: Current time: Mon May 17 17:10:28 +14 2021 +I: pbuilder-time-stamp: 1621221028