1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package import1
16
17 import (
18 "log"
19 "net/http"
20 "os"
21 "path/filepath"
22 "strings"
23 "testing"
24 )
25
26 const (
27 importPrefix = "importd-test-"
28 )
29
30 func TestImportTar(t *testing.T) {
31 conn, err := New()
32 if err != nil {
33 t.Fatal(err)
34 }
35
36 f, err := os.Open(findFixture("image.tar.xz", t))
37 if err != nil {
38 t.Fatal(err)
39 }
40
41 _, err = conn.ImportTar(f, importPrefix+"ImportTar", true, true)
42 if err != nil {
43 t.Fatal(err)
44 }
45 }
46
47 func TestImportRaw(t *testing.T) {
48 conn, err := New()
49 if err != nil {
50 t.Fatal(err)
51 }
52
53 f, err := os.Open(findFixture("image.raw.xz", t))
54 if err != nil {
55 t.Fatal(err)
56 }
57
58 _, err = conn.ImportRaw(f, importPrefix+"ImportRaw", true, true)
59 if err != nil {
60 t.Fatal(err)
61 }
62 }
63
64 func TestExportTar(t *testing.T) {
65 conn, err := New()
66 if err != nil {
67 t.Fatal(err)
68 }
69
70 err = os.MkdirAll("tmp/", os.ModeDir|0755)
71 if err != nil {
72 t.Fatal(err)
73 }
74 f, err := os.Create("tmp/image-export.tar.xz")
75 if err != nil {
76 t.Fatal(err)
77 }
78
79 _, err = conn.ExportTar(importPrefix+"ImportTar", f, "xz")
80 if err != nil {
81 t.Fatal(err)
82 }
83 }
84
85 func TestExportRaw(t *testing.T) {
86 conn, err := New()
87 if err != nil {
88 t.Fatal(err)
89 }
90
91 err = os.MkdirAll("tmp/", os.ModeDir|0755)
92 if err != nil {
93 t.Fatal(err)
94 }
95 f, err := os.Create("tmp/image-export.raw.xz")
96 if err != nil {
97 t.Fatal(err)
98 }
99
100 _, err = conn.ExportRaw(importPrefix+"ImportRaw", f, "xz")
101 if err != nil {
102 t.Fatal(err)
103 }
104 }
105
106 func TestPullTar(t *testing.T) {
107 conn, err := New()
108 if err != nil {
109 t.Fatal(err)
110 }
111
112 _, err = conn.PullTar("http://127.0.0.1:8080/image.tar.xz", importPrefix+"PullTar", "no", true)
113 if err != nil {
114 t.Fatal(err)
115 }
116 }
117 func TestPullRaw(t *testing.T) {
118 conn, err := New()
119 if err != nil {
120 t.Fatal(err)
121 }
122
123 _, err = conn.PullRaw("http://127.0.0.1:8080/image.raw.xz", importPrefix+"PullRaw", "no", true)
124 if err != nil {
125 t.Fatal(err)
126 }
127 }
128
129 func TestListAndCancelTransfers(t *testing.T) {
130 conn, err := New()
131 if err != nil {
132 t.Fatal(err)
133 }
134
135 go func() {
136 _, _ = conn.PullTar("http://127.0.0.1:8080/image.tar.xz", importPrefix+"ListAndCancelTransfers", "no", true)
137 _, _ = conn.PullTar("http://127.0.0.1:8080/image.raw.xz", importPrefix+"ListAndCancelTransfers", "no", true)
138 }()
139
140 transfers, err := conn.ListTransfers()
141 if err != nil {
142 t.Error(err)
143 }
144 if len(transfers) < 1 {
145 t.Error("transfers length is not correct")
146 }
147
148 for _, v := range transfers {
149 err = conn.CancelTransfer(v.Id)
150 if err != nil {
151
152 if strings.Contains(err.Error(), "No transfer by id") {
153 continue
154 }
155 t.Error(err)
156 }
157 }
158 }
159
160 func findFixture(target string, t *testing.T) string {
161 abs, err := filepath.Abs("../fixtures/" + target)
162 if err != nil {
163 t.Fatal(err)
164 }
165 return abs
166 }
167
168 func init() {
169 go func() {
170 err := http.ListenAndServe(":8080", http.FileServer(http.Dir("../fixtures")))
171 if err != nil {
172 log.Fatal(err)
173 }
174 }()
175 }
176
View as plain text