Skip to content
This repository was archived by the owner on Dec 3, 2020. It is now read-only.

Commit 492bfdc

Browse files
authored
Merge pull request #13 from codacy/allow-unknown-languages
Allow unknown languages
2 parents b96a328 + f435bd4 commit 492bfdc

File tree

6 files changed

+16
-13
lines changed

6 files changed

+16
-13
lines changed

project/Dependencies.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import sbt._
22

33
object Dependencies {
44

5-
lazy val codacyScalaApi = "com.codacy" %% "codacy-api-scala" % "2.0.4"
5+
lazy val codacyScalaApi = "com.codacy" %% "codacy-api-scala" % "3.0.1"
66
lazy val scalaTest = "org.scalatest" %% "scalatest" % "2.2.4" % "test"
77

88
}

src/main/scala/com/codacy/parsers/implementation/CoberturaParser.scala

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
11
package com.codacy.parsers.implementation
22

33
import java.io.File
4-
import java.util.Locale
54
import java.text.NumberFormat
5+
import java.util.Locale
66

77
import com.codacy.api.{CoverageFileReport, CoverageReport, Language}
88
import com.codacy.parsers.XMLCoverageParser
99
import com.codacy.parsers.util.LanguageUtils
1010

11-
import scala.xml.Node
1211
import scala.util.Try
12+
import scala.xml.Node
1313

1414
class CoberturaParser(val language: Language.Value, val rootProject: File, val coverageReport: File) extends XMLCoverageParser {
1515

1616
val rootProjectDir = sanitiseFilename(rootProject.getAbsolutePath + File.separator)
17-
lazy val allFiles = recursiveListFiles(rootProject)(f => f.getName.endsWith(LanguageUtils.getExtension(language)))
17+
18+
lazy val allFiles = recursiveListFiles(rootProject) { file =>
19+
LanguageUtils.getExtension(language).fold(true)(file.getName.endsWith(_))
20+
}.map(file => sanitiseFilename(file.getAbsolutePath))
1821

1922
private[this] def convertToFloat(str: String): Try[Float] = {
2023
Try(str.toFloat).recoverWith {
@@ -51,7 +54,7 @@ class CoberturaParser(val language: Language.Value, val rootProject: File, val c
5154
lineCoverage(file)
5255
}
5356

54-
CoverageReport(language, total, filesCoverage.toSeq)
57+
CoverageReport(total, filesCoverage.toSeq)
5558
}
5659

5760
private def lineCoverage(sourceFilename: String): Option[CoverageFileReport] = {
@@ -79,7 +82,7 @@ class CoberturaParser(val language: Language.Value, val rootProject: File, val c
7982
key -> value
8083
}
8184

82-
allFiles.map(f => sanitiseFilename(f.getAbsolutePath)).find(f => f.endsWith(sourceFilename)).map {
85+
allFiles.find(f => f.endsWith(sourceFilename)).map {
8386
filename =>
8487
CoverageFileReport(stripRoot(filename), fileHit, lineHitMap)
8588
}

src/main/scala/com/codacy/parsers/implementation/JacocoParser.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class JacocoParser(val language: Language.Value, val rootProject: File, val cove
3333
}
3434
}
3535

36-
CoverageReport(language, total, filesCoverage)
36+
CoverageReport(total, filesCoverage)
3737
}
3838

3939
private def lineCoverage(sourceFilename: String, file: Node): CoverageFileReport = {
@@ -44,7 +44,7 @@ class JacocoParser(val language: Language.Value, val rootProject: File, val cove
4444
((covered / (covered + missed)) * 100).toInt
4545
}
4646

47-
val fileHit = classHit.sum / classHit.length
47+
val fileHit = if (classHit.sum > 0) classHit.sum / classHit.length else 0
4848

4949
val lineHitMap = (file \\ "line").map {
5050
line =>

src/main/scala/com/codacy/parsers/util/LanguageUtils.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import com.codacy.api.Language
44

55
object LanguageUtils {
66

7-
def getExtension(language: Language.Value): String = {
8-
language match {
7+
def getExtension(language: Language.Value): Option[String] = {
8+
Option(language).collect {
99
case Language.Java => ".java"
1010
case Language.Python => ".py"
1111
case Language.Scala => ".scala"

src/test/scala/com/codacy/parsers/CoberturaParserTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class CoberturaParserTest extends WordSpec with BeforeAndAfterAll with Matchers
2525
"return a valid report" in {
2626
val reader = new CoberturaParser(Language.Scala, new File("."), new File("src/test/resources/test_cobertura.xml"))
2727

28-
val testReport = CoverageReport(Language.Scala, 87, List(
28+
val testReport = CoverageReport(87, List(
2929
CoverageFileReport("src/test/resources/TestSourceFile.scala", 87,
3030
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 4 -> 1)),
3131
CoverageFileReport("src/test/resources/TestSourceFile2.scala", 87,
@@ -37,7 +37,7 @@ class CoberturaParserTest extends WordSpec with BeforeAndAfterAll with Matchers
3737
"no crash on thousands separators" in {
3838
val reader = new CoberturaParser(Language.Scala, new File("."), new File("src/test/resources/thousand_sep_cobertura.xml"))
3939

40-
val testReport = CoverageReport(Language.Scala, 87, List(
40+
val testReport = CoverageReport(87, List(
4141
CoverageFileReport("src/test/resources/TestSourceFile.scala", 87,
4242
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 4 -> 1)),
4343
CoverageFileReport("src/test/resources/TestSourceFile2.scala", 87,

src/test/scala/com/codacy/parsers/JacocoParserTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class JacocoParserTest extends WordSpec with BeforeAndAfterAll with Matchers {
2525
"return a valid report" in {
2626
val reader = new JacocoParser(Language.Java, new File("."), new File("src/test/resources/test_jacoco.xml"))
2727

28-
val testReport = CoverageReport(Language.Java, 73, List(
28+
val testReport = CoverageReport(73, List(
2929
CoverageFileReport("org/eluder/coverage/sample/InnerClassCoverage.java", 81,
3030
Map(10 -> 1, 6 -> 1, 9 -> 1, 13 -> 1, 22 -> 1, 12 -> 1, 3 -> 1, 16 -> 1, 19 -> 1)),
3131
CoverageFileReport("org/eluder/coverage/sample/SimpleCoverage.java", 50,

0 commit comments

Comments
 (0)