Skip to content

Commit a8dcd39

Browse files
committed
Add tests for scala and kotlin
Signed-off-by: Tushar Goel <[email protected]>
1 parent fb86667 commit a8dcd39

File tree

2 files changed

+110
-3
lines changed

2 files changed

+110
-3
lines changed

scanpipe/pipelines/deploy_to_develop.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,13 @@ def steps(cls):
7373
cls.match_archives_to_purldb,
7474
cls.find_java_packages,
7575
cls.map_java_to_class,
76-
cls.map_jar_to_source,
76+
cls.map_jar_to_java_source,
7777
cls.find_scala_packages,
7878
cls.map_scala_to_class,
79+
cls.map_jar_to_scala_source,
7980
cls.find_kotlin_packages,
8081
cls.map_kotlin_to_class,
82+
cls.map_jar_to_kotlin_source,
8183
cls.map_javascript,
8284
cls.map_javascript_symbols,
8385
cls.map_javascript_strings,
@@ -185,7 +187,7 @@ def map_java_to_class(self):
185187
)
186188

187189
@optional_step("Java")
188-
def map_jar_to_source(self):
190+
def map_jar_to_java_source(self):
189191
"""Map .jar files to their related source directory."""
190192
d2d.map_jar_to_jvm_source(
191193
project=self.project, logger=self.log, jvm_lang=jvm.JavaLanguage
@@ -226,6 +228,13 @@ def map_kotlin_to_class(self):
226228
project=self.project, logger=self.log, jvm_lang=jvm.KotlinLanguage
227229
)
228230

231+
@optional_step("Kotlin")
232+
def map_jar_to_kotlin_source(self):
233+
"""Map .jar files to their related source directory."""
234+
d2d.map_jar_to_jvm_source(
235+
project=self.project, logger=self.log, jvm_lang=jvm.KotlinLanguage
236+
)
237+
229238
@optional_step("JavaScript")
230239
def map_javascript(self):
231240
"""

scanpipe/tests/pipes/test_d2d.py

Lines changed: 99 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ def test_scanpipe_pipes_d2d_map_java_to_class_no_java(self):
402402
expected = "No ('.java',) resources to map."
403403
self.assertIn(expected, buffer.getvalue())
404404

405-
def test_scanpipe_pipes_d2d_map_jar_to_source(self):
405+
def test_scanpipe_pipes_d2d_map_jar_to_java_source(self):
406406
from1 = make_resource_file(
407407
self.project1,
408408
path="from/flume-ng-node-1.9.0-sources.jar-extract/org/apache/flume/node/"
@@ -450,6 +450,104 @@ def test_scanpipe_pipes_d2d_map_jar_to_source(self):
450450
relation = self.project1.codebaserelations.get(map_type="jar_to_source")
451451
self.assertEqual(from2, relation.from_resource)
452452
self.assertEqual(to_jar, relation.to_resource)
453+
454+
def test_scanpipe_pipes_d2d_map_jar_to_scala_source(self):
455+
from1 = make_resource_file(
456+
self.project1,
457+
path="from/flume-ng-node-1.9.0-sources.jar-extract/org/apache/flume/node/"
458+
"AbstractConfigurationProvider.scala",
459+
extra_data={"scala_package": "org.apache.flume.node"},
460+
)
461+
from2 = make_resource_file(
462+
self.project1,
463+
path="from/flume-ng-node-1.9.0-sources.jar-extract",
464+
)
465+
to1 = make_resource_file(
466+
self.project1,
467+
path="to/flume-ng-node-1.9.0.jar-extract/org/apache/flume/node/"
468+
"AbstractConfigurationProvider.class",
469+
)
470+
make_resource_file(
471+
self.project1,
472+
path="to/flume-ng-node-1.9.0.jar-extract/META-INF/MANIFEST.MF",
473+
)
474+
to_jar = make_resource_file(
475+
self.project1,
476+
path="to/flume-ng-node-1.9.0.jar",
477+
)
478+
479+
buffer = io.StringIO()
480+
d2d.map_jvm_to_class(
481+
self.project1, logger=buffer.write, jvm_lang=jvm.ScalaLanguage
482+
)
483+
relation = self.project1.codebaserelations.get()
484+
self.assertEqual(from1, relation.from_resource)
485+
self.assertEqual(to1, relation.to_resource)
486+
self.assertEqual("scala_to_class", relation.map_type)
487+
expected = {"from_source_root": "from/flume-ng-node-1.9.0-sources.jar-extract/"}
488+
self.assertEqual(expected, relation.extra_data)
489+
490+
buffer = io.StringIO()
491+
with self.assertNumQueries(6):
492+
d2d.map_jar_to_jvm_source(
493+
self.project1, logger=buffer.write, jvm_lang=jvm.ScalaLanguage
494+
)
495+
expected = "Mapping 1 .jar resources using map_jar_to_source"
496+
self.assertIn(expected, buffer.getvalue())
497+
498+
self.assertEqual(2, self.project1.codebaserelations.count())
499+
relation = self.project1.codebaserelations.get(map_type="jar_to_source")
500+
self.assertEqual(from2, relation.from_resource)
501+
self.assertEqual(to_jar, relation.to_resource)
502+
503+
def test_scanpipe_pipes_d2d_map_jar_to_kotlin_source(self):
504+
from1 = make_resource_file(
505+
self.project1,
506+
path="from/flume-ng-node-1.9.0-sources.jar-extract/org/apache/flume/node/"
507+
"AbstractConfigurationProvider.kt",
508+
extra_data={"kotlin_package": "org.apache.flume.node"},
509+
)
510+
from2 = make_resource_file(
511+
self.project1,
512+
path="from/flume-ng-node-1.9.0-sources.jar-extract",
513+
)
514+
to1 = make_resource_file(
515+
self.project1,
516+
path="to/flume-ng-node-1.9.0.jar-extract/org/apache/flume/node/"
517+
"AbstractConfigurationProvider.class",
518+
)
519+
make_resource_file(
520+
self.project1,
521+
path="to/flume-ng-node-1.9.0.jar-extract/META-INF/MANIFEST.MF",
522+
)
523+
to_jar = make_resource_file(
524+
self.project1,
525+
path="to/flume-ng-node-1.9.0.jar",
526+
)
527+
528+
buffer = io.StringIO()
529+
d2d.map_jvm_to_class(
530+
self.project1, logger=buffer.write, jvm_lang=jvm.KotlinLanguage
531+
)
532+
relation = self.project1.codebaserelations.get()
533+
self.assertEqual(from1, relation.from_resource)
534+
self.assertEqual(to1, relation.to_resource)
535+
self.assertEqual("kotlin_to_class", relation.map_type)
536+
expected = {"from_source_root": "from/flume-ng-node-1.9.0-sources.jar-extract/"}
537+
self.assertEqual(expected, relation.extra_data)
538+
539+
buffer = io.StringIO()
540+
with self.assertNumQueries(6):
541+
d2d.map_jar_to_jvm_source(
542+
self.project1, logger=buffer.write, jvm_lang=jvm.KotlinLanguage
543+
)
544+
expected = "Mapping 1 .jar resources using map_jar_to_source"
545+
self.assertIn(expected, buffer.getvalue())
546+
547+
self.assertEqual(2, self.project1.codebaserelations.count())
548+
relation = self.project1.codebaserelations.get(map_type="jar_to_source")
549+
self.assertEqual(from2, relation.from_resource)
550+
self.assertEqual(to_jar, relation.to_resource)
453551

454552
def test_scanpipe_pipes_d2d_map_jar_to_source_works_for_jar(self):
455553
from1 = make_resource_file(

0 commit comments

Comments
 (0)