Update code base on review/feedback

Fix the following

- Fix the import style in one line
- Use constructure once when creating the docker-image
- Use some? instead of if
- Remove :env-vars from the test
- Move resources to test section
This commit is contained in:
Burin Choomnuan 2020-07-26 17:29:04 -04:00
parent d2237b08b0
commit cb77214ffa
4 changed files with 9 additions and 17 deletions

View file

@ -1,14 +1,10 @@
(ns clj-test-containers.core (ns clj-test-containers.core
(:require [clojure.java.io :as io]) (:require [clojure.java.io :as io])
(:import [org.testcontainers.containers (:import [org.testcontainers.containers GenericContainer]
GenericContainer] [org.testcontainers.utility MountableFile]
[org.testcontainers.utility
MountableFile]
[org.testcontainers.containers BindMode] [org.testcontainers.containers BindMode]
[org.testcontainers.images.builder [org.testcontainers.images.builder ImageFromDockerfile]
ImageFromDockerfile] [java.nio.file Path Paths]))
[java.nio.file
Path Paths]))
(defn- resolve-bind-mode (defn- resolve-bind-mode
[bind-mode] [bind-mode]
@ -37,15 +33,14 @@
(defn create-from-docker-file (defn create-from-docker-file
[{:keys [exposed-ports env-vars command docker-file] [{:keys [exposed-ports env-vars command docker-file]
:or {docker-file "Dockerfile"}}] :or {docker-file "Dockerfile"}}]
(let [docker-image (ImageFromDockerfile.) (let [docker-image (-> (ImageFromDockerfile.)
docker-image (-> docker-image
(.withDockerfile (Paths/get "." (into-array [docker-file])))) (.withDockerfile (Paths/get "." (into-array [docker-file]))))
container (GenericContainer. docker-image)] container (GenericContainer. docker-image)]
(.setExposedPorts container (map int exposed-ports)) (.setExposedPorts container (map int exposed-ports))
(if env-vars (if (some? env-vars)
(doseq [[k v] env-vars] (doseq [[k v] env-vars]
(.addEnv container k v))) (.addEnv container k v)))
(if command (if (some? command)
(.setCommand container command)) (.setCommand container command))
{:container container {:container container
:exposed-ports (.getExposedPorts container) :exposed-ports (.getExposedPorts container)

View file

@ -16,11 +16,8 @@
(is (nil? (:mapped-ports stopped-container))))) (is (nil? (:mapped-ports stopped-container)))))
(testing "Testing basic testcontainer image creation from docker file" (testing "Testing basic testcontainer image creation from docker file"
(let [container (create-from-docker-file {:env-vars (let [container (create-from-docker-file {:exposed-ports [80]
{"FOO" "bar" :docker-file "test/resources/Dockerfile"})
"MAGIC_NUMBER" "42"}
:exposed-ports [80]
:docker-file "resources/Dockerfile"})
initialized-container (start! container) initialized-container (start! container)
stopped-container (stop! container)] stopped-container (stop! container)]
(is (some? (:id initialized-container))) (is (some? (:id initialized-container)))