4040public class PythonLibraryModuleRuleTest {
4141 private static final String TARGET = "//foo/bar/baz:target" ;
4242 private static final Path MODULE_PATH = Paths .get ("foo" , "bar" , "baz" );
43- private final PythonLibraryModuleRule rule =
44- new PythonLibraryModuleRule (
45- new FakeProjectFilesystem (),
46- new IjModuleFactoryResolver () {
47- @ Override
48- public Optional <Path > getDummyRDotJavaPath (TargetNode <?> targetNode ) {
49- return Optional .empty ();
50- }
51-
52- @ Override
53- public Path getAndroidManifestPath (TargetNode <AndroidBinaryDescriptionArg > targetNode ) {
54- return null ;
55- }
56-
57- @ Override
58- public Optional <Path > getLibraryAndroidManifestPath (
59- TargetNode <AndroidLibraryDescription .CoreArg > targetNode ) {
60- return Optional .empty ();
61- }
62-
63- @ Override
64- public Optional <Path > getResourceAndroidManifestPath (
65- TargetNode <AndroidResourceDescriptionArg > targetNode ) {
66- return Optional .empty ();
67- }
68-
69- @ Override
70- public Optional <Path > getProguardConfigPath (
71- TargetNode <AndroidBinaryDescriptionArg > targetNode ) {
72- return Optional .empty ();
73- }
74-
75- @ Override
76- public Optional <Path > getAndroidResourcePath (
77- TargetNode <AndroidResourceDescriptionArg > targetNode ) {
78- return Optional .empty ();
79- }
80-
81- @ Override
82- public Optional <Path > getAssetsPath (
83- TargetNode <AndroidResourceDescriptionArg > targetNode ) {
84- return Optional .empty ();
85- }
86-
87- @ Override
88- public Optional <Path > getAnnotationOutputPath (
89- TargetNode <? extends JvmLibraryArg > targetNode ) {
90- return Optional .empty ();
91- }
92-
93- @ Override
94- public Optional <Path > getKaptAnnotationOutputPath (
95- TargetNode <? extends JvmLibraryArg > targetNode ) {
96- return Optional .empty ();
97- }
98-
99- @ Override
100- public Optional <Path > getCompilerOutputPath (
101- TargetNode <? extends JvmLibraryArg > targetNode ) {
102- return Optional .empty ();
103- }
104- },
105- new IjDepsQueryResolver () {
106- @ Override
107- public ImmutableSortedSet <BuildTarget > getResolvedDeps (TargetNode <?> targetNode ) {
108- return ImmutableSortedSet .of ();
109- }
110-
111- @ Override
112- public ImmutableSortedSet <BuildTarget > getResolvedProvidedDeps (
113- TargetNode <?> targetNode ) {
114- return ImmutableSortedSet .of ();
115- }
116- },
117- IjTestProjectConfig .create ());
43+
44+ private static PythonLibraryModuleRule getPythonLibraryModuleRule (
45+ boolean pythonBaseModuleTransformEnabled ) {
46+ return new PythonLibraryModuleRule (
47+ new FakeProjectFilesystem (),
48+ new IjModuleFactoryResolver () {
49+ @ Override
50+ public Optional <Path > getDummyRDotJavaPath (TargetNode <?> targetNode ) {
51+ return Optional .empty ();
52+ }
53+
54+ @ Override
55+ public Path getAndroidManifestPath (TargetNode <AndroidBinaryDescriptionArg > targetNode ) {
56+ return null ;
57+ }
58+
59+ @ Override
60+ public Optional <Path > getLibraryAndroidManifestPath (
61+ TargetNode <AndroidLibraryDescription .CoreArg > targetNode ) {
62+ return Optional .empty ();
63+ }
64+
65+ @ Override
66+ public Optional <Path > getResourceAndroidManifestPath (
67+ TargetNode <AndroidResourceDescriptionArg > targetNode ) {
68+ return Optional .empty ();
69+ }
70+
71+ @ Override
72+ public Optional <Path > getProguardConfigPath (
73+ TargetNode <AndroidBinaryDescriptionArg > targetNode ) {
74+ return Optional .empty ();
75+ }
76+
77+ @ Override
78+ public Optional <Path > getAndroidResourcePath (
79+ TargetNode <AndroidResourceDescriptionArg > targetNode ) {
80+ return Optional .empty ();
81+ }
82+
83+ @ Override
84+ public Optional <Path > getAssetsPath (
85+ TargetNode <AndroidResourceDescriptionArg > targetNode ) {
86+ return Optional .empty ();
87+ }
88+
89+ @ Override
90+ public Optional <Path > getAnnotationOutputPath (
91+ TargetNode <? extends JvmLibraryArg > targetNode ) {
92+ return Optional .empty ();
93+ }
94+
95+ @ Override
96+ public Optional <Path > getKaptAnnotationOutputPath (
97+ TargetNode <? extends JvmLibraryArg > targetNode ) {
98+ return Optional .empty ();
99+ }
100+
101+ @ Override
102+ public Optional <Path > getCompilerOutputPath (
103+ TargetNode <? extends JvmLibraryArg > targetNode ) {
104+ return Optional .empty ();
105+ }
106+ },
107+ new IjDepsQueryResolver () {
108+ @ Override
109+ public ImmutableSortedSet <BuildTarget > getResolvedDeps (TargetNode <?> targetNode ) {
110+ return ImmutableSortedSet .of ();
111+ }
112+
113+ @ Override
114+ public ImmutableSortedSet <BuildTarget > getResolvedProvidedDeps (TargetNode <?> targetNode ) {
115+ return ImmutableSortedSet .of ();
116+ }
117+ },
118+ IjTestProjectConfig .createBuilder ()
119+ .setPythonBaseModuleTransformEnabled (pythonBaseModuleTransformEnabled )
120+ .build ());
121+ }
122+
123+ private final PythonLibraryModuleRule ruleWithTransformEnabled = getPythonLibraryModuleRule (true );
124+ private final PythonLibraryModuleRule ruleWithTransformDisabled =
125+ getPythonLibraryModuleRule (false );
118126
119127 @ Test
120128 public void adjustModulePathWithNoBaseModule () {
121129 TargetNode <PythonLibraryDescriptionArg > targetNode =
122130 PythonLibraryBuilder .createBuilder (BuildTargetFactory .newInstance (TARGET )).build ();
123- assertEquals (MODULE_PATH , rule .adjustModulePath (targetNode , MODULE_PATH ));
131+ assertEquals (MODULE_PATH , ruleWithTransformEnabled .adjustModulePath (targetNode , MODULE_PATH ));
124132 }
125133
126134 @ Test
@@ -129,7 +137,7 @@ public void adjustModulePathWithEmptyBaseModule() {
129137 PythonLibraryBuilder .createBuilder (BuildTargetFactory .newInstance (TARGET ))
130138 .setBaseModule ("" )
131139 .build ();
132- assertEquals (MODULE_PATH , rule .adjustModulePath (targetNode , MODULE_PATH ));
140+ assertEquals (MODULE_PATH , ruleWithTransformEnabled .adjustModulePath (targetNode , MODULE_PATH ));
133141 }
134142
135143 @ Test
@@ -138,7 +146,8 @@ public void adjustModulePathWithValidBaseModule() {
138146 PythonLibraryBuilder .createBuilder (BuildTargetFactory .newInstance (TARGET ))
139147 .setBaseModule ("bar.baz" )
140148 .build ();
141- assertEquals (Paths .get ("foo" ), rule .adjustModulePath (targetNode , MODULE_PATH ));
149+ assertEquals (
150+ Paths .get ("foo" ), ruleWithTransformEnabled .adjustModulePath (targetNode , MODULE_PATH ));
142151 }
143152
144153 @ Test
@@ -147,7 +156,7 @@ public void adjustModulePathWithInvalidBaseModule() {
147156 PythonLibraryBuilder .createBuilder (BuildTargetFactory .newInstance (TARGET ))
148157 .setBaseModule ("bar.baz1" )
149158 .build ();
150- assertEquals (MODULE_PATH , rule .adjustModulePath (targetNode , MODULE_PATH ));
159+ assertEquals (MODULE_PATH , ruleWithTransformEnabled .adjustModulePath (targetNode , MODULE_PATH ));
151160 }
152161
153162 @ Test
@@ -156,6 +165,15 @@ public void adjustModulePathWithNullResult() {
156165 PythonLibraryBuilder .createBuilder (BuildTargetFactory .newInstance (TARGET ))
157166 .setBaseModule ("foo.bar.baz" )
158167 .build ();
159- assertEquals (MODULE_PATH , rule .adjustModulePath (targetNode , MODULE_PATH ));
168+ assertEquals (MODULE_PATH , ruleWithTransformEnabled .adjustModulePath (targetNode , MODULE_PATH ));
169+ }
170+
171+ @ Test
172+ public void adjustModulePathWithValidBaseModuleAndTransformDisabled () {
173+ TargetNode <PythonLibraryDescriptionArg > targetNode =
174+ PythonLibraryBuilder .createBuilder (BuildTargetFactory .newInstance (TARGET ))
175+ .setBaseModule ("bar.baz" )
176+ .build ();
177+ assertEquals (MODULE_PATH , ruleWithTransformDisabled .adjustModulePath (targetNode , MODULE_PATH ));
160178 }
161179}
0 commit comments