Skip to content

Commit ab780b6

Browse files
authored
Add test for misc/extdeps_pomgen (#28)
1 parent 8cec530 commit ab780b6

File tree

3 files changed

+80
-11
lines changed

3 files changed

+80
-11
lines changed

misc/BUILD

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1-
python_version = 'PY2'
1+
python_version = 'PY3'
22

33
py_binary(
44
name = "extdeps",
55
srcs = ["//:pomgen_files", "extdeps_pomgen.py"],
66
main = "extdeps_pomgen.py",
77
python_version = python_version,
88
)
9+
10+
py_test(
11+
name = "extdeps_pomgentest",
12+
srcs = ["//:pomgen_files",
13+
"extdeps_pomgen.py",
14+
"tests/extdeps_pomgentest.py"],
15+
imports = ["."],
16+
size = "small",
17+
python_version = python_version,
18+
)
19+

misc/extdeps_pomgen.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@ def _starts_with_ignored_prefix(line):
5757
return True
5858
return False
5959

60-
if __name__ == "__main__":
61-
args = _parse_arguments(sys.argv[1:])
60+
def main(args):
61+
args = _parse_arguments(args)
6262
repo_root = common.get_repo_root(args.repo_root)
6363
cfg = config.load(repo_root)
64-
workspace = workspace.Workspace(repo_root,
65-
cfg.external_dependencies,
66-
cfg.excluded_dependency_paths,
67-
cfg.all_src_exclusions)
64+
ws = workspace.Workspace(repo_root,
65+
cfg.external_dependencies,
66+
cfg.excluded_dependency_paths,
67+
cfg.all_src_exclusions)
6868

6969
group_id = "all_ext_deps_group" if args.group_id is None else args.group_id
7070
artifact_id = "all_ext_deps_art" if args.artifact_id is None else args.artifact_id
@@ -88,12 +88,16 @@ def _starts_with_ignored_prefix(line):
8888
if _starts_with_ignored_prefix(line):
8989
continue
9090
dep_labels.append(line)
91-
unique_dependencies = set(workspace.parse_dep_labels(dep_labels))
91+
unique_dependencies = set(ws.parse_dep_labels(dep_labels))
9292
dependencies = list(unique_dependencies)
9393
else:
94-
dependencies = list(workspace.name_to_external_dependencies.values())
94+
dependencies = list(ws.name_to_external_dependencies.values())
9595

9696
dependencies.sort()
97-
pomgen = ThirdPartyDepsPomGen(workspace, artifact_def, dependencies, cfg.pom_template)
97+
pomgen = ThirdPartyDepsPomGen(ws, artifact_def, dependencies,
98+
cfg.pom_template)
9899
pomgen.process_dependencies()
99-
print(pomgen.gen())
100+
return pomgen.gen()
101+
102+
if __name__ == "__main__":
103+
print(main(sys.argv[1:]))

misc/tests/extdeps_pomgentest.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
"""
2+
Copyright (c) 2018, salesforce.com, inc.
3+
All rights reserved.
4+
SPDX-License-Identifier: BSD-3-Clause
5+
For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6+
"""
7+
8+
import extdeps_pomgen
9+
import os
10+
import tempfile
11+
import unittest
12+
13+
class ExtDepsPomgenTest(unittest.TestCase):
14+
15+
def test1(self):
16+
self._setup_workspace()
17+
args = ("--repo_root", self.repo_root_path,)
18+
19+
pom = extdeps_pomgen.main(args)
20+
21+
self.assertIn("<groupId>com.google.guava</groupId>", pom)
22+
self.assertIn("<artifactId>guava</artifactId>", pom)
23+
self.assertIn("<version>23.0</version", pom)
24+
25+
def _setup_workspace(self):
26+
self.repo_root_path = tempfile.mkdtemp("monorepo")
27+
self._add_WORKSPACE_file()
28+
self._add_pom_template()
29+
30+
def _add_WORKSPACE_file(self):
31+
content = """
32+
maven_jar(
33+
name = "com_google_guava_guava",
34+
artifact = "com.google.guava:guava:23.0",
35+
)
36+
"""
37+
self._write_file("", "", "WORKSPACE", content)
38+
39+
def _add_pom_template(self):
40+
content = "${dependencies}"
41+
self._write_file("config", "", "pom_template.xml", content)
42+
43+
def _write_file(self, package_rel_path, rel_path, filename, content):
44+
print(content)
45+
path = os.path.join(self.repo_root_path, package_rel_path, rel_path,
46+
filename)
47+
parent_dir = os.path.dirname(path)
48+
if not os.path.exists(parent_dir):
49+
os.makedirs(parent_dir)
50+
with open(path, "w") as f:
51+
f.write(content)
52+
53+
if __name__ == '__main__':
54+
unittest.main()

0 commit comments

Comments
 (0)