summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-06-02 22:02:12 +0100
committerChristopher Baines <mail@cbaines.net>2019-06-02 22:02:12 +0100
commit544dc1558fb3fb8ccebf311edc885ce60eee740c (patch)
tree8cd9189a4a16a3c6ea9c69d868ffbf404e2e555b
parent5d06a28577f6a917ebacd3d6e7aab1a7c61c6e27 (diff)
downloaddata-service-544dc1558fb3fb8ccebf311edc885ce60eee740c.tar
data-service-544dc1558fb3fb8ccebf311edc885ce60eee740c.tar.gz
Add a new test to cover some of the loading new revisions code
-rw-r--r--Makefile.am1
-rw-r--r--tests/jobs-load-new-guix-revision.scm80
2 files changed, 81 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 669784b..1bb1b58 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -67,6 +67,7 @@ TEST_EXTENSIONS = .scm
TESTS = \
tests/branch-updated-emails.scm \
+ tests/jobs-load-new-guix-revision.scm \
tests/model-derivation.scm \
tests/model-git-branch.scm \
tests/model-git-repository.scm \
diff --git a/tests/jobs-load-new-guix-revision.scm b/tests/jobs-load-new-guix-revision.scm
new file mode 100644
index 0000000..70a7dfd
--- /dev/null
+++ b/tests/jobs-load-new-guix-revision.scm
@@ -0,0 +1,80 @@
+(define-module (tests model-license)
+ #: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
+ (lambda (conn)
+ (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-git-repository-id-and-commit
+ (lambda (conn git-repository-id commit)
+ "/gnu/store/test"))
+
+ (mock
+ ((guix-data-service jobs load-new-guix-revision)
+ extract-information-from
+ (lambda (conn git-repository-id commit store-path)
+ #t))
+
+ (enqueue-load-new-guix-revision-job
+ conn
+ (git-repository-url->git-repository-id conn "test-url")
+ "test-commit"
+ "test-source")
+
+ (process-next-load-new-guix-revision-job conn))))
+
+ (test-equal "test build store item failure"
+ #f
+ (mock
+ ((guix-data-service jobs load-new-guix-revision)
+ store-item-for-git-repository-id-and-commit
+ (lambda (conn git-repository-id commit)
+ #f))
+
+ (enqueue-load-new-guix-revision-job
+ conn
+ (git-repository-url->git-repository-id conn "test-url")
+ "test-commit"
+ "test-source")
+
+ (process-next-load-new-guix-revision-job conn)))
+
+ (test-equal "test extract information failure"
+ #f
+ (mock
+ ((guix-data-service jobs load-new-guix-revision)
+ store-item-for-git-repository-id-and-commit
+ (lambda (conn git-repository-id commit)
+ "/gnu/store/test"))
+
+ (mock
+ ((guix-data-service jobs load-new-guix-revision)
+ extract-information-from
+ (lambda (conn git-repository-id commit store-path)
+ #f))
+
+ (enqueue-load-new-guix-revision-job
+ conn
+ (git-repository-url->git-repository-id conn "test-url")
+ "test-commit"
+ "test-source")
+
+ (process-next-load-new-guix-revision-job conn))))))
+
+(test-end)