| 214 | assert (tmp_dir / "dvc.lock").read_text() == dvc_lock |
| 215 | |
| 216 | def test_dir(self, tmp_dir, dvc, run_copy, remote_version_aware): # noqa: PLR0915 |
| 217 | (stage,) = tmp_dir.dvc_gen( |
| 218 | { |
| 219 | "data_dir": { |
| 220 | "data_sub_dir": {"data_sub": "data_sub"}, |
| 221 | "data": "data", |
| 222 | "empty": "", |
| 223 | } |
| 224 | } |
| 225 | ) |
| 226 | |
| 227 | assert not dvc.fetch() |
| 228 | assert dvc.push() |
| 229 | |
| 230 | data_dir_dvc = (tmp_dir / "data_dir.dvc").read_text() |
| 231 | assert "files" in data_dir_dvc |
| 232 | assert "version_id" in data_dir_dvc |
| 233 | stage = stage.reload() |
| 234 | out = stage.outs[0] |
| 235 | assert out.files |
| 236 | for file in out.files: |
| 237 | assert file["version_id"] |
| 238 | assert file["remote"] == "upstream" |
| 239 | |
| 240 | remove(dvc.cache.local.path) |
| 241 | remove(tmp_dir / "data_dir") |
| 242 | |
| 243 | assert dvc.pull() |
| 244 | assert (tmp_dir / "data_dir" / "data").read_text() == "data" |
| 245 | assert ( |
| 246 | tmp_dir / "data_dir" / "data_sub_dir" / "data_sub" |
| 247 | ).read_text() == "data_sub" |
| 248 | assert (tmp_dir / "data_dir.dvc").read_text() == data_dir_dvc |
| 249 | |
| 250 | run_copy("data_dir", "data_dir_copy", name="copy") |
| 251 | dvc_lock = (tmp_dir / "dvc.lock").read_text() |
| 252 | |
| 253 | assert dvc.push() |
| 254 | assert (remote_version_aware / "data_dir").exists() |
| 255 | assert (remote_version_aware / "data_dir" / "data").exists() |
| 256 | assert (remote_version_aware / "data_dir_copy").exists() |
| 257 | assert (remote_version_aware / "data_dir_copy" / "data").exists() |
| 258 | assert (tmp_dir / "data_dir.dvc").read_text() == data_dir_dvc |
| 259 | assert (tmp_dir / "dvc.lock").read_text() != dvc_lock |
| 260 | dvc_lock = (tmp_dir / "dvc.lock").read_text() |
| 261 | |
| 262 | assert not dvc.push() |
| 263 | assert (remote_version_aware / "data_dir").exists() |
| 264 | assert (remote_version_aware / "data_dir" / "data").exists() |
| 265 | assert (remote_version_aware / "data_dir_copy").exists() |
| 266 | assert (remote_version_aware / "data_dir_copy" / "data").exists() |
| 267 | assert (tmp_dir / "data_dir.dvc").read_text() == data_dir_dvc |
| 268 | assert (tmp_dir / "dvc.lock").read_text() == dvc_lock |
| 269 | |
| 270 | dvc.cache.local.clear() |
| 271 | remove(tmp_dir / "data_dir") |
| 272 | remove(tmp_dir / "data_dir_copy") |
| 273 | assert not dvc.push() |