;;; el-exiftool.el --- Elisp wrapper around exiftool ;; -*- lexical-binding: t -*- ;; Elisp wrapper around exiftool ;; Copyright (C) 2017 by Arun I ;; ;; Author: Arun I ;; Keywords: data ;; Homepage: https://git.systemreboot.net/el-exiftool ;; This file is part of el-exiftool. ;; el-exiftool is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; el-exiftool is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with el-exiftool. If not, see . ;;; Commentary: ;; ;; Unit testing for el-exiftool ;;; Code: (require 'el-exiftool) (require 'ert) (defmacro with-temp-test-file (test-file temp-file &rest body) "Copy TEST-FILE to temporary file, put path in TEMP-FILE, evaluate BODY." (declare (indent defun)) `(let ((,temp-file (make-temp-file "el-exiftool-" nil (concat "-" ,test-file)))) (copy-file ,test-file ,temp-file t) ,@body (delete-file ,temp-file))) (ert-deftest read-write-test () (with-temp-test-file "test1.png" temp-filename (let ((tag-value-alist '(("Marked" . "True")))) (apply 'el-exiftool-write temp-filename tag-value-alist) (should (equal (el-exiftool-read temp-filename (caar tag-value-alist)) tag-value-alist))))) (ert-deftest delete-test () (with-temp-test-file "test1.png" temp-file (el-exiftool-write temp-file '("Marked" . "True")) (el-exiftool-write temp-file '("Marked" . "")) (should (equal (el-exiftool-read temp-file "Marked") '(("Marked" . "")))))) (provide 'el-exiftool-tests) ;;; el-exiftool-tests.el ends here