From 78ff298b42c6b89d1c85653599b91f4ee1091221 Mon Sep 17 00:00:00 2001 From: jem Date: Tue, 7 Jan 2020 14:20:21 +0100 Subject: [PATCH] fix separation of new-io --- src/cryogen_core/compiler.clj | 13 ++-- src/cryogen_core/new_io.clj | 4 +- test/cryogen_core/classpath_able_io_test.clj | 73 +++----------------- test/cryogen_core/file_test_tools.clj | 24 +++++++ test/cryogen_core/new_io_test.clj | 60 ++++++++++++++++ 5 files changed, 102 insertions(+), 72 deletions(-) create mode 100644 test/cryogen_core/file_test_tools.clj create mode 100644 test/cryogen_core/new_io_test.clj diff --git a/src/cryogen_core/compiler.clj b/src/cryogen_core/compiler.clj index deda634..3d3309d 100644 --- a/src/cryogen_core/compiler.clj +++ b/src/cryogen_core/compiler.clj @@ -9,6 +9,7 @@ [text-decoration.core :refer :all] [cryogen-core.io :as cryogen-io] [cryogen-core.new-io :as new-io] + [cryogen-core.classpath-able-io :as cp-io] [cryogen-core.klipse :as klipse] [cryogen-core.markup :as m] [cryogen-core.rss :as rss] @@ -541,7 +542,7 @@ file-resource-prefix "resources/" resource-prefix (str "templates/themes/" theme) file-uri (:uri - (new-io/resource-from-cp-or-fs + (cp-io/resource-from-cp-or-fs file-resource-prefix resource-prefix "" :from-cp false))] (when debug? @@ -555,24 +556,24 @@ ;; TODO: 2. use target/theme as custome-resource-path (set-custom-resource-path! (.toString file-uri)) ;(cryogen-io/wipe-public-folder keep-files) - (new-io/delete-resource-recursive! (new-io/path "resources/public" blog-prefix)) + (new-io/delete-resource-recursive! (cp-io/path "resources/public" blog-prefix)) (println (blue "copying theme resources")) ;(cryogen-io/copy-resources-from-theme config) (new-io/copy-resources-from-theme! "resources/" theme - (new-io/path "resources/public" blog-prefix) + (cp-io/path "resources/public" blog-prefix) ignored-files) (println (blue "copying resources")) ;(cryogen-io/copy-resources config) - (new-io/copy-resources-from-user! "resources/" + (new-io/copy-resources-from-templates! "resources/" resources - (new-io/path "resources/public" blog-prefix) + (cp-io/path "resources/public" blog-prefix) ignored-files) ;(copy-resources-from-markup-folders config) (new-io/create-dirs-from-markup-folders! "resources/" (:posts config) (:pages config) - (new-io/path "resources/public" blog-prefix) + (cp-io/path "resources/public" blog-prefix) ignored-files) ; TODO: Hier weitermachen (compile-pages params modelled-pages) diff --git a/src/cryogen_core/new_io.clj b/src/cryogen_core/new_io.clj index 5689832..f57f002 100644 --- a/src/cryogen_core/new_io.clj +++ b/src/cryogen_core/new_io.clj @@ -11,7 +11,9 @@ [clojure.java.io :as io] [cryogen-core.classpath-able-io :as cp-io])) -(defn copy-resources-from-user! +(def delete-resource-recursive! cp-io/delete-resource-recursive!) + +(defn copy-resources-from-templates! [fs-prefix resources target-path ignore-patterns] (let [resource-path "templates"] (cp-io/copy-resources! fs-prefix resource-path resources diff --git a/test/cryogen_core/classpath_able_io_test.clj b/test/cryogen_core/classpath_able_io_test.clj index a63d1ad..300f5ce 100644 --- a/test/cryogen_core/classpath_able_io_test.clj +++ b/test/cryogen_core/classpath_able_io_test.clj @@ -10,6 +10,7 @@ (:require [clojure.test :refer :all] [clojure.java.io :as io] [schema.core :as s] + [cryogen-core.file-test-tools :as ftt] [cryogen-core.classpath-able-io :as sut])) (s/set-fn-validation! true) @@ -18,23 +19,6 @@ (def target "target/tmp") -(defn verify-file-exists [path] - (.exists (io/file path))) - -(defn verify-dir-exists [path] - (and (verify-file-exists path) - (.isDirectory (io/file path)))) - -(defn filter-object - [e] - {:path (:path e) - :source-type (:source-type e) - :resource-type (:resource-type e)}) - -(deftest test-uri-from-cp - (is - (sut/file-from-cp ".gitkeep"))) - (deftest test-resource-from-cp-or-fs (is (.exists @@ -60,7 +44,7 @@ {:path "js/subdir" :source-type :classpath :resource-type :dir} - (filter-object + (ftt/filter-object (sut/resource-from-cp-or-fs "./not-existing-so-load-from-cp" "templates/themes/bootstrap4-test" @@ -74,7 +58,7 @@ [{:path "js/dummy.js" :source-type :classpath :resource-type :file}] - (map filter-object + (map ftt/filter-object (sut/get-resources-recursive "" "templates/themes/bootstrap4-test" ["js/dummy.js"])))) (is (= @@ -104,18 +88,6 @@ (sut/get-resources-recursive "" "templates/themes/bootstrap4-test" ["."])))))) -(deftest test-get-distinct-markup-dirs - (is (= - ["test_pages" - "test_pages/home" - "test_posts" - "test_posts/home"] - (sort (map :path - (sut/get-distinct-markup-dirs - "not-existing-get-from-cp" - "test_posts" "test_pages" - "")))))) - (deftest test-distinct-resources-by-path (is (= [{:path "pages/test"} {:path "pages/test1"} @@ -125,43 +97,14 @@ {:path "pages/test2"} {:path "pages/test1"}])))) -(deftest test-create-dirs-from-markup-folders! - (is (do - (sut/delete-resource-recursive! (str target "2")) - (sut/create-dirs-from-markup-folders! - "not-existing-get-from-cp" "test_posts" "test_pages" - (str target "2") "") - (and (verify-dir-exists - (str (str target "2") "/test_pages")) - (verify-dir-exists - (str (str target "2") "/test_posts")) - (verify-dir-exists - (str (str target "2") "/test_pages/home")))))) +(deftest test-filter-for-ignore-patterns + (is (= + ["file.js"] + (sut/filter-for-ignore-patterns #".*\.ignore" ["file.js" "file.ignore"])))) (deftest test-delete-resource-recursive! (is (do (.mkdir (io/file target)) (sut/delete-resource-recursive! target) - (not (verify-dir-exists target))))) - -(deftest test-filter-for-ignore-patterns - (is (= - ["file.js"] - (sut/filter-for-ignore-patterns #".*\.ignore" ["file.js" "file.ignore"])))) - -(deftest test-copy-resources-from-theme! (is (do - (sut/delete-resource-recursive! target) - (sut/copy-resources-from-theme! "./" theme target "") - (and (verify-dir-exists - (str target "/js")) - (verify-file-exists - (str target "/js/dummy.js")) - (verify-dir-exists - (str target "/js/subdir")) - (verify-file-exists - (str target "/js/subdir/subdummy.js")) - (verify-file-exists - (str target "/css/dummy.css")) - (verify-file-exists - (str target "/404.html")))))) + (not (ftt/verify-dir-exists target))))) diff --git a/test/cryogen_core/file_test_tools.clj b/test/cryogen_core/file_test_tools.clj new file mode 100644 index 0000000..8d0e40f --- /dev/null +++ b/test/cryogen_core/file_test_tools.clj @@ -0,0 +1,24 @@ +; Copyright (c) meissa. All rights reserved. +; The use and distribution terms for this software are covered by the +; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) +; which can be found in the file epl-v10.html at the root of this distribution. +; By using this software in any fashion, you are agreeing to be bound by +; the terms of this license. +; You must not remove this notice, or any other, from this software. + +(ns cryogen-core.file-test-tools + (:require [clojure.java.io :as io] + [schema.core :as s])) + +(defn verify-file-exists [path] + (.exists (io/file path))) + +(defn verify-dir-exists [path] + (and (verify-file-exists path) + (.isDirectory (io/file path)))) + +(defn filter-object + [e] + {:path (:path e) + :source-type (:source-type e) + :resource-type (:resource-type e)}) diff --git a/test/cryogen_core/new_io_test.clj b/test/cryogen_core/new_io_test.clj new file mode 100644 index 0000000..cd6efea --- /dev/null +++ b/test/cryogen_core/new_io_test.clj @@ -0,0 +1,60 @@ +; Copyright (c) meissa. All rights reserved. +; The use and distribution terms for this software are covered by the +; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) +; which can be found in the file epl-v10.html at the root of this distribution. +; By using this software in any fashion, you are agreeing to be bound by +; the terms of this license. +; You must not remove this notice, or any other, from this software. + +(ns cryogen-core.new-io-test + (:require [clojure.test :refer :all] + [schema.core :as s] + [cryogen-core.file-test-tools :as ftt] + [cryogen-core.new-io :as sut])) + +(s/set-fn-validation! true) + +(def theme "bootstrap4-test") + +(def target "target/tmp") + +(deftest test-get-distinct-markup-dirs + (is (= + ["test_pages" + "test_pages/home" + "test_posts" + "test_posts/home"] + (sort (map :path + (sut/get-distinct-markup-dirs + "not-existing-get-from-cp" + "test_posts" "test_pages" + "")))))) + +(deftest test-create-dirs-from-markup-folders! + (is (do + (sut/delete-resource-recursive! (str target "2")) + (sut/create-dirs-from-markup-folders! + "not-existing-get-from-cp" "test_posts" "test_pages" + (str target "2") "") + (and (ftt/verify-dir-exists + (str (str target "2") "/test_pages")) + (ftt/verify-dir-exists + (str (str target "2") "/test_posts")) + (ftt/verify-dir-exists + (str (str target "2") "/test_pages/home")))))) + +(deftest test-copy-resources-from-theme! (is (do + (sut/delete-resource-recursive! target) + (sut/copy-resources-from-theme! "./" theme target "") + (and (ftt/verify-dir-exists + (str target "/js")) + (ftt/verify-file-exists + (str target "/js/dummy.js")) + (ftt/verify-dir-exists + (str target "/js/subdir")) + (ftt/verify-file-exists + (str target "/js/subdir/subdummy.js")) + (ftt/verify-file-exists + (str target "/css/dummy.css")) + (ftt/verify-file-exists + (str target "/404.html"))))))