mirror of
git://git.savannah.gnu.org/guix/data-service.git
synced 2023-12-14 03:23:03 +01:00
120 lines
3.4 KiB
Scheme
120 lines
3.4 KiB
Scheme
(define-module (tests jobs-load-new-guix-revision)
|
|
#:use-module (srfi srfi-64)
|
|
#:use-module (ice-9 match)
|
|
#:use-module (squee)
|
|
#:use-module (guix utils)
|
|
#:use-module (guix tests)
|
|
#:use-module (guix-data-service database)
|
|
#:use-module (tests mock-inferior)
|
|
#:use-module (guix-data-service model git-repository)
|
|
#:use-module (guix-data-service jobs load-new-guix-revision))
|
|
|
|
(test-begin "jobs-load-new-guix-revision")
|
|
|
|
(with-postgresql-connection
|
|
"test-jobs-load-new-guix-revision"
|
|
(lambda (conn)
|
|
(exec-query conn "TRUNCATE guix_revisions CASCADE")
|
|
|
|
(test-equal "select-job-for-commit works"
|
|
'()
|
|
(select-job-for-commit conn "does not exist"))
|
|
|
|
(test-equal "test job success"
|
|
#t
|
|
(mock
|
|
((guix-data-service jobs load-new-guix-revision)
|
|
store-item-for-channel
|
|
(lambda (conn channel)
|
|
"/gnu/store/test"))
|
|
|
|
(mock
|
|
((guix-data-service jobs load-new-guix-revision)
|
|
extract-information-from
|
|
(lambda (conn guix-revision-id commit store-path)
|
|
#t))
|
|
|
|
(mock
|
|
((guix channels)
|
|
channel-news-for-commit
|
|
(lambda (channel commit)
|
|
'()))
|
|
|
|
(match (enqueue-load-new-guix-revision-job
|
|
conn
|
|
(git-repository-url->git-repository-id conn "test-url")
|
|
"test-commit"
|
|
"test-source")
|
|
((id)
|
|
(process-load-new-guix-revision-job id)))))))
|
|
|
|
(exec-query conn "TRUNCATE guix_revisions CASCADE")
|
|
(exec-query conn "TRUNCATE load_new_guix_revision_jobs CASCADE")
|
|
|
|
(test-equal "test build store item failure"
|
|
#f
|
|
(mock
|
|
((guix-data-service jobs load-new-guix-revision)
|
|
store-item-for-channel
|
|
(lambda (conn channel)
|
|
#f))
|
|
|
|
(match (enqueue-load-new-guix-revision-job
|
|
conn
|
|
(git-repository-url->git-repository-id conn "test-url")
|
|
"test-commit"
|
|
"test-source")
|
|
((id)
|
|
(process-load-new-guix-revision-job id)))))
|
|
|
|
(exec-query conn "TRUNCATE load_new_guix_revision_jobs CASCADE")
|
|
|
|
(test-equal "test extract information failure"
|
|
#f
|
|
(mock
|
|
((guix-data-service jobs load-new-guix-revision)
|
|
store-item-for-channel
|
|
(lambda (conn channel)
|
|
"/gnu/store/test"))
|
|
|
|
(mock
|
|
((guix-data-service jobs load-new-guix-revision)
|
|
extract-information-from
|
|
(lambda (conn git-repository-id commit store-path)
|
|
#f))
|
|
|
|
(mock
|
|
((guix channels)
|
|
channel-news-for-commit
|
|
(lambda (channel commit)
|
|
'()))
|
|
|
|
(match (enqueue-load-new-guix-revision-job
|
|
conn
|
|
(git-repository-url->git-repository-id conn "test-url")
|
|
"test-commit"
|
|
"test-source")
|
|
((id)
|
|
(process-load-new-guix-revision-job id)))))))
|
|
|
|
(exec-query conn "TRUNCATE load_new_guix_revision_jobs CASCADE")
|
|
|
|
(test-assert "test duplicate job handling"
|
|
(with-postgresql-transaction
|
|
conn
|
|
(lambda (conn)
|
|
(enqueue-load-new-guix-revision-job
|
|
conn
|
|
(git-repository-url->git-repository-id conn "test-url")
|
|
"test-commit"
|
|
"test-source")
|
|
(enqueue-load-new-guix-revision-job
|
|
conn
|
|
(git-repository-url->git-repository-id conn "test-url")
|
|
"test-commit"
|
|
"test-source")
|
|
#t)
|
|
#:always-rollback? #t))))
|
|
|
|
(test-end)
|