/
el-get-issue-683.el
69 lines (59 loc) · 2.24 KB
/
el-get-issue-683.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
;; https://github.com/dimitri/el-get/issues/683
;;
;; el-get-remove needs to be more flexible
(setq el-get-sources (list '(:name a :type builtin))
el-get-default-process-sync t)
(defun assert-package-fully-removed (pkg)
(assert (string= "removed"
(el-get-read-package-status pkg))
nil
"Package %s should have status \"removed\", but actually has status \"%s\"."
pkg (el-get-read-package-status pkg))
(assert (not (or (file-exists-p (el-get-package-directory pkg))
(file-symlink-p (el-get-package-directory pkg))))
nil
"Package directory for %s should not exist, but it does" pkg))
;; Try to just install and remove
(el-get-install 'a)
(el-get-remove 'a)
(assert-package-fully-removed 'a)
;; Install, then set status to "required", then uninstall.
(el-get-install 'a)
(el-get-save-package-status 'a "required")
(el-get-remove 'a)
(assert-package-fully-removed 'a)
;; Install, then set status to "removed", then uninstall.
(el-get-install 'a)
(el-get-save-package-status 'a "removed")
(el-get-remove 'a)
(assert-package-fully-removed 'a)
;; Set status to "installed" but don't actually install, then remove
(el-get-save-package-status 'a "installed")
(el-get-remove 'a)
(assert-package-fully-removed 'a)
;; Install, then set status to "required", then call install again,
;; which should remove and then reinstall.
(el-get-install 'a)
(el-get-save-package-status 'a "required")
(el-get-install 'a)
(el-get-remove 'a)
(assert-package-fully-removed 'a)
;; Install, then set status to "required", then call install again,
;; which should remove and then reinstall.
(el-get-install 'a)
(el-get-save-package-status 'a "required")
(el-get-install 'a)
(el-get-remove 'a)
(assert-package-fully-removed 'a)
;; Create the package directory but don't install it. Then try to
;; install, which should remove and reinstall.
(make-directory (el-get-package-directory 'a) 'recursive)
(el-get-install 'a)
(el-get-remove 'a)
(assert-package-fully-removed 'a)
;; Install, then set the recipe to nil in the status file, then uninstall
(el-get-install 'a)
(flet ((el-get-package-def (&rest ignored) nil))
(el-get-save-package-status 'a "installed"))
(el-get-remove 'a)
(assert-package-fully-removed 'a)