|
16 | 16 | from pathlib import Path |
17 | 17 |
|
18 | 18 | import pytest |
| 19 | +import tempfile |
19 | 20 |
|
20 | 21 | from synthtool import gcp |
21 | 22 | from synthtool.sources import templates |
| 23 | +from synthtool.languages import python |
22 | 24 | from . import util |
23 | 25 |
|
24 | 26 |
|
@@ -126,3 +128,46 @@ def test_split_system_tests(): |
126 | 128 | with open(templated_files / ".kokoro/presubmit/system-3.8.cfg", "r") as f: |
127 | 129 | contents = f.read() |
128 | 130 | assert "system-3.8" in contents |
| 131 | + |
| 132 | +def test_detect_versions_src(): |
| 133 | + temp_dir = Path(tempfile.mkdtemp()) |
| 134 | + src_dir = temp_dir / "src" |
| 135 | + for v in ("v1", "v2", "v3"): |
| 136 | + os.makedirs(src_dir / v) |
| 137 | + |
| 138 | + with util.chdir(temp_dir): |
| 139 | + versions = python.detect_versions() |
| 140 | + assert ["v1", "v2", "v3"] == versions |
| 141 | + |
| 142 | + |
| 143 | +def test_detect_versions_staging(): |
| 144 | + temp_dir = Path(tempfile.mkdtemp()) |
| 145 | + staging_dir = temp_dir / "owl-bot-staging" |
| 146 | + for v in ("v1", "v2", "v3"): |
| 147 | + os.makedirs(staging_dir / v) |
| 148 | + |
| 149 | + versions = python.detect_versions(staging_dir) |
| 150 | + assert ["v1", "v2", "v3"] == versions |
| 151 | + |
| 152 | + |
| 153 | +def test_detect_versions_dir_not_found(): |
| 154 | + temp_dir = Path(tempfile.mkdtemp()) |
| 155 | + |
| 156 | + versions = python.detect_versions(temp_dir / "does-not-exist") |
| 157 | + assert [] == versions |
| 158 | + |
| 159 | + |
| 160 | +def test_detect_versions_with_default(): |
| 161 | + temp_dir = Path(tempfile.mkdtemp()) |
| 162 | + src_dir = temp_dir / "src" |
| 163 | + vs = ("v1", "v2", "v3") |
| 164 | + for v in vs: |
| 165 | + os.makedirs(src_dir / v) |
| 166 | + |
| 167 | + with util.chdir(temp_dir): |
| 168 | + versions = python.detect_versions(default_version="v1") |
| 169 | + assert ["v2", "v3", "v1"] == versions |
| 170 | + versions = python.detect_versions(default_version="v2") |
| 171 | + assert ["v1", "v3", "v2"] == versions |
| 172 | + versions = python.detect_versions(default_version="v3") |
| 173 | + assert ["v1", "v2", "v3"] == versions |
0 commit comments