diff mbox series

[bug#37855] gnu: guix-data-service: Enable build time tests.

Message ID 20191021174223.28196-1-mail@cbaines.net
State Accepted
Headers show
Series [bug#37855] gnu: guix-data-service: Enable build time tests. | expand

Commit Message

Christopher Baines Oct. 21, 2019, 5:42 p.m. UTC
Previously the tests were not run, as PostgreSQL wasn't running at build
time. Now there's a new target, check-with-tmp-database that uses ephemeralpg
to run the tests without relying on an externally managed PostgreSQL service.

* gnu/packages/web.scm (guix-data-service)[arguments]: Remove #:tests? #f, and
set #:test-target to "check-with-tmp-database".
[native-inputs]: Add ephemeralpg.
---
 gnu/packages/web.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Ludovic Courtès Oct. 22, 2019, 4:17 p.m. UTC | #1
Hi,

Christopher Baines <mail@cbaines.net> skribis:

> Previously the tests were not run, as PostgreSQL wasn't running at build
> time. Now there's a new target, check-with-tmp-database that uses ephemeralpg
> to run the tests without relying on an externally managed PostgreSQL service.
>
> * gnu/packages/web.scm (guix-data-service)[arguments]: Remove #:tests? #f, and
> set #:test-target to "check-with-tmp-database".
> [native-inputs]: Add ephemeralpg.

Nice, LGTM!

I wonder: can’t you just have “make check” do this, or do you want to
have “make check” talk to a real database instead?

(For the Guix test suite, ‘test-env’ spawns a daemon with a temporary
store for test purposes; I wonder if the situation is comparable here.)

Thanks,
Ludo’.
Christopher Baines Oct. 22, 2019, 10:08 p.m. UTC | #2
Ludovic Courtès <ludo@gnu.org> writes:

> Hi,
>
> Christopher Baines <mail@cbaines.net> skribis:
>
>> Previously the tests were not run, as PostgreSQL wasn't running at build
>> time. Now there's a new target, check-with-tmp-database that uses ephemeralpg
>> to run the tests without relying on an externally managed PostgreSQL service.
>>
>> * gnu/packages/web.scm (guix-data-service)[arguments]: Remove #:tests? #f, and
>> set #:test-target to "check-with-tmp-database".
>> [native-inputs]: Add ephemeralpg.
>
> Nice, LGTM!

Great, I've pushed this now as 353f5f7aa7ea575f9f04d3a0b277bbb8012b942d.

> I wonder: can’t you just have “make check” do this, or do you want to
> have “make check” talk to a real database instead?

It's mostly a new target as I already had "make check" just run the
tests, but yeah, it might be more useful for "make check" to setup an
empty database, then run the tests. I'm not quite sure yet.
diff mbox series

Patch

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 5487eb2e71..a91059f73d 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4044,11 +4044,11 @@  CDF, Atom 0.3, and Atom 1.0 feeds.")
                   "0awfvps7k9bpg3gpgc93y401g7pjabx7mr9960vigad8vddhixqi"))))
       (build-system gnu-build-system)
       (arguments
-       '(#:tests? #f                    ; TODO Tests require PostgreSQL
-         #:modules ((guix build utils)
+       '(#:modules ((guix build utils)
                     (guix build gnu-build-system)
                     (ice-9 rdelim)
                     (ice-9 popen))
+         #:test-target "check-with-tmp-database"
          #:phases
          (modify-phases %standard-phases
            (add-after 'set-paths 'set-GUIX_ENVIRONMENT
@@ -4106,6 +4106,7 @@  CDF, Atom 0.3, and Atom 1.0 feeds.")
        `(("guile" ,guile-2.2)
          ("autoconf" ,autoconf)
          ("automake" ,automake)
+         ("ephemeralpg" ,ephemeralpg)
          ("emacs-with-modules" ,(directory-union
                                  "emacs-union"
                                  (list emacs-no-x