blob: cf4632233e8ca3ef4ae66de7ca9796bed0427188 [file] [log] [blame]
Jingwen Chen13b9b422021-03-08 07:32:28 -05001package bp2build
2
3import (
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +02004 "testing"
5
Jingwen Chen13b9b422021-03-08 07:32:28 -05006 "android/soong/python"
Jingwen Chen13b9b422021-03-08 07:32:28 -05007)
8
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +02009func TestPythonBinaryHostSimple(t *testing.T) {
Alex Márquez Pérez Muñíz Díaz Púras Thaureauxce0a07e2021-08-23 16:17:32 +000010 runBp2BuildTestCaseSimple(t, bp2buildTestCase{
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +020011 description: "simple python_binary_host converts to a native py_binary",
12 moduleTypeUnderTest: "python_binary_host",
13 moduleTypeUnderTestFactory: python.PythonBinaryHostFactory,
14 moduleTypeUnderTestBp2BuildMutator: python.PythonBinaryBp2Build,
15 filesystem: map[string]string{
16 "a.py": "",
17 "b/c.py": "",
18 "b/d.py": "",
19 "b/e.py": "",
20 "files/data.txt": "",
21 },
22 blueprint: `python_binary_host {
Jingwen Chen13b9b422021-03-08 07:32:28 -050023 name: "foo",
24 main: "a.py",
Jingwen Chenb4628eb2021-04-08 14:40:57 +000025 srcs: ["**/*.py"],
26 exclude_srcs: ["b/e.py"],
27 data: ["files/data.txt",],
Jingwen Chen13b9b422021-03-08 07:32:28 -050028 bazel_module: { bp2build_available: true },
29}
30`,
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +020031 expectedBazelTargets: []string{`py_binary(
Jingwen Chen13b9b422021-03-08 07:32:28 -050032 name = "foo",
Jingwen Chenb4628eb2021-04-08 14:40:57 +000033 data = ["files/data.txt"],
Jingwen Chen13b9b422021-03-08 07:32:28 -050034 main = "a.py",
35 srcs = [
36 "a.py",
37 "b/c.py",
38 "b/d.py",
39 ],
40)`,
Jingwen Chen13b9b422021-03-08 07:32:28 -050041 },
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +020042 })
43}
44
45func TestPythonBinaryHostPy2(t *testing.T) {
Alex Márquez Pérez Muñíz Díaz Púras Thaureauxce0a07e2021-08-23 16:17:32 +000046 runBp2BuildTestCaseSimple(t, bp2buildTestCase{
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +020047 description: "py2 python_binary_host",
48 moduleTypeUnderTest: "python_binary_host",
49 moduleTypeUnderTestFactory: python.PythonBinaryHostFactory,
50 moduleTypeUnderTestBp2BuildMutator: python.PythonBinaryBp2Build,
51 blueprint: `python_binary_host {
Jingwen Chen13b9b422021-03-08 07:32:28 -050052 name: "foo",
53 srcs: ["a.py"],
54 version: {
55 py2: {
56 enabled: true,
57 },
58 py3: {
59 enabled: false,
60 },
61 },
62
63 bazel_module: { bp2build_available: true },
64}
65`,
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +020066 expectedBazelTargets: []string{`py_binary(
Jingwen Chen13b9b422021-03-08 07:32:28 -050067 name = "foo",
68 python_version = "PY2",
Jingwen Chenb4628eb2021-04-08 14:40:57 +000069 srcs = ["a.py"],
Jingwen Chen13b9b422021-03-08 07:32:28 -050070)`,
Jingwen Chen13b9b422021-03-08 07:32:28 -050071 },
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +020072 })
73}
74
75func TestPythonBinaryHostPy3(t *testing.T) {
Alex Márquez Pérez Muñíz Díaz Púras Thaureauxce0a07e2021-08-23 16:17:32 +000076 runBp2BuildTestCaseSimple(t, bp2buildTestCase{
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +020077 description: "py3 python_binary_host",
78 moduleTypeUnderTest: "python_binary_host",
79 moduleTypeUnderTestFactory: python.PythonBinaryHostFactory,
80 moduleTypeUnderTestBp2BuildMutator: python.PythonBinaryBp2Build,
81 blueprint: `python_binary_host {
Jingwen Chen13b9b422021-03-08 07:32:28 -050082 name: "foo",
83 srcs: ["a.py"],
84 version: {
85 py2: {
86 enabled: false,
87 },
88 py3: {
89 enabled: true,
90 },
91 },
92
93 bazel_module: { bp2build_available: true },
94}
95`,
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +020096 expectedBazelTargets: []string{
97 // python_version is PY3 by default.
98 `py_binary(
Jingwen Chen13b9b422021-03-08 07:32:28 -050099 name = "foo",
Jingwen Chenb4628eb2021-04-08 14:40:57 +0000100 srcs = ["a.py"],
Jingwen Chen13b9b422021-03-08 07:32:28 -0500101)`,
Jingwen Chen13b9b422021-03-08 07:32:28 -0500102 },
Lukacs T. Berkic1cc3b92021-05-21 09:37:00 +0200103 })
Jingwen Chen13b9b422021-03-08 07:32:28 -0500104}