Skip to content

Commit 01074c4

Browse files
committed
Add tests for empty directory include/excludePatterns
1 parent 5c680a7 commit 01074c4

File tree

1 file changed

+59
-28
lines changed

1 file changed

+59
-28
lines changed

os/test/src/ZipOpTests.scala

Lines changed: 59 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -109,42 +109,73 @@ object ZipOpTests extends TestSuite {
109109
assert(paths == expected)
110110
}
111111

112-
test("zipEmptyDir") - prep { wd =>
113-
val zipFileName = "zipEmptyDirs"
112+
test("zipEmptyDir") {
113+
def prepare(wd: os.Path) = {
114+
val zipFileName = "zipEmptyDirs"
114115

115-
val emptyDir = wd / "empty"
116-
os.makeDir(emptyDir)
116+
val emptyDir = wd / "empty"
117+
os.makeDir(emptyDir)
117118

118-
val containsEmptyDir = wd / "outer"
119-
os.makeDir.all(containsEmptyDir)
120-
os.makeDir(containsEmptyDir / "emptyInnerDir")
119+
val containsEmptyDir = wd / "outer"
120+
os.makeDir.all(containsEmptyDir)
121+
os.makeDir(containsEmptyDir / "emptyInnerDir")
121122

122-
val zipped = os.zip(
123-
dest = wd / s"${zipFileName}.zip",
124-
sources = Seq(emptyDir, containsEmptyDir)
125-
)
123+
(zipFileName, emptyDir, containsEmptyDir)
124+
}
126125

127-
val unzipped = os.unzip(zipped, wd / zipFileName)
128-
// should include empty dirs inside source
129-
assert(os.isDir(unzipped / "emptyInnerDir"))
130-
// should ignore empty dirs specified in sources without dest
131-
assert(!os.exists(unzipped / "empty"))
132-
}
126+
test("zipEmptyDir") - prep { wd =>
127+
val (zipFileName, emptyDir, containsEmptyDir) = prepare(wd)
133128

134-
test("zipEmptyDirWithDest") - prep { wd =>
135-
val zipFileName = "zipEmptyDirs"
129+
val zipped = os.zip(
130+
dest = wd / s"${zipFileName}.zip",
131+
sources = Seq(emptyDir, containsEmptyDir)
132+
)
136133

137-
val emptyDir = wd / "empty"
138-
os.makeDir(emptyDir)
134+
val unzipped = os.unzip(zipped, wd / zipFileName)
135+
// should include empty dirs inside source
136+
assert(os.isDir(unzipped / "emptyInnerDir"))
137+
// should ignore empty dirs specified in sources without dest
138+
assert(!os.exists(unzipped / "empty"))
139+
}
139140

140-
val zipped = os.zip(
141-
dest = wd / s"${zipFileName}.zip",
142-
sources = Seq((emptyDir, os.sub / "empty"))
143-
)
141+
test("includePatterns") - prep { wd =>
142+
val (zipFileName, _, containsEmptyDir) = prepare(wd)
143+
144+
val zipped = os.zip(
145+
dest = wd / s"${zipFileName}.zip",
146+
sources = Seq(containsEmptyDir),
147+
includePatterns = Seq(raw".*Inner.*".r)
148+
)
149+
150+
val unzipped = os.unzip(zipped, wd / zipFileName)
151+
assert(os.isDir(unzipped / "emptyInnerDir"))
152+
}
153+
154+
test("excludePatterns") - prep { wd =>
155+
val (zipFileName, _, containsEmptyDir) = prepare(wd)
156+
157+
val zipped = os.zip(
158+
dest = wd / s"${zipFileName}.zip",
159+
sources = Seq(containsEmptyDir),
160+
excludePatterns = Seq(raw".*Inner.*".r)
161+
)
162+
163+
val unzipped = os.unzip(zipped, wd / zipFileName)
164+
assert(!os.exists(unzipped / "emptyInnerDir"))
165+
}
166+
167+
test("withDest") - prep { wd =>
168+
val (zipFileName, emptyDir, _) = prepare(wd)
169+
170+
val zipped = os.zip(
171+
dest = wd / s"${zipFileName}.zip",
172+
sources = Seq((emptyDir, os.sub / "empty"))
173+
)
144174

145-
val unzipped = os.unzip(zipped, wd / zipFileName)
146-
// should include empty dirs specified in sources with dest
147-
assert(os.isDir(unzipped / "empty"))
175+
val unzipped = os.unzip(zipped, wd / zipFileName)
176+
// should include empty dirs specified in sources with dest
177+
assert(os.isDir(unzipped / "empty"))
178+
}
148179
}
149180

150181
test("zipStream") - prep { wd =>

0 commit comments

Comments
 (0)