mirror of
git://git.savannah.gnu.org/guix/data-service.git
synced 2023-12-14 03:23:03 +01:00
squee, returns all data as strings, and expects strings as inputs to queries. So, keeping the ids as strings was easy initially, but it means that you can't tell from the type whether it should be quoted, or not... Therefore, handle ids as strings, converting them to numbers when they're fetched from the database, and back to strings as part of the queries.
34 lines
968 B
Scheme
34 lines
968 B
Scheme
(define-module (test-model-git-repository)
|
|
#:use-module (ice-9 match)
|
|
#:use-module (srfi srfi-64)
|
|
#:use-module (guix-data-service database)
|
|
#:use-module (guix-data-service model git-repository))
|
|
|
|
(test-begin "test-model-git-repository")
|
|
|
|
(with-postgresql-connection
|
|
"test-model-git-repository"
|
|
(lambda (conn)
|
|
(test-assert "returns an id for a non existent URL"
|
|
(with-postgresql-transaction
|
|
conn
|
|
(lambda (conn)
|
|
(match (git-repository-url->git-repository-id
|
|
conn
|
|
"test-non-existent-url")
|
|
((? number? x)
|
|
#t)))
|
|
#:always-rollback? #t))
|
|
|
|
(let* ((url "test-url")
|
|
(id (git-repository-url->git-repository-id conn url)))
|
|
(with-postgresql-transaction
|
|
conn
|
|
(lambda (conn)
|
|
(test-equal "returns the right id for an existing URL"
|
|
id
|
|
(git-repository-url->git-repository-id conn url)))
|
|
#:always-rollback? #t))))
|
|
|
|
(test-end)
|