Skip to content

Commit

Permalink
Merge e1a3d44 into 65b04c0
Browse files Browse the repository at this point in the history
  • Loading branch information
ruippeixotog committed Jun 4, 2017
2 parents 65b04c0 + e1a3d44 commit d590e89
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
6 changes: 3 additions & 3 deletions core/src/main/scala/pureconfig/package.scala
Expand Up @@ -8,7 +8,7 @@ import java.io.{ OutputStream, PrintStream }
import java.nio.file.{ Files, Path }

import com.typesafe.config.{ ConfigException, Config => TypesafeConfig }
import pureconfig.error.{ ConfigReaderException, ConfigReaderFailures, ConfigValueLocation, KeyNotFound }
import pureconfig.error._
import pureconfig.ConfigConvert.improveFailures
import pureconfig.backend.ConfigFactoryWrapper.{ invalidateCaches, load, loadFile, parseFile }
import scala.reflect.ClassTag
Expand Down Expand Up @@ -278,8 +278,8 @@ package object pureconfig {
files
.map(parseFile)
.foldLeft[Either[ConfigReaderFailures, Seq[TypesafeConfig]]](Right(Seq())) {
case (c1, c2) =>
ConfigConvert.combineResults(c1, c2)(_ :+ _)
case (c1, Left(ConfigReaderFailures(_: CannotReadFile, Nil))) => c1
case (c1, c2) => ConfigConvert.combineResults(c1, c2)(_ :+ _)
}
.right.map(_.reduce(_.withFallback(_)).resolve)
.right.flatMap(loadConfig[Config])
Expand Down
22 changes: 11 additions & 11 deletions core/src/test/scala/pureconfig/ApiSuite.scala
Expand Up @@ -109,13 +109,6 @@ class ApiSuite extends BaseSuite {
loadConfigFromFiles[Conf](files) shouldBe Right(Conf(false, 0.001D))
}

"loadConfigWithFallback" should "fallback if no config keys are found" in {
case class Conf(f: Float, o: Option[Int], d: Double)
val priority1Conf = ConfigFactory.load("conf/loadConfigFromFiles/priority1.conf")
// first wo are in priority1.conf, the d is in reference.conf
loadConfigWithFallback[Conf](priority1Conf) shouldBe Right(Conf(0.99F, None, 0.0))
}

it should "fill in missing values from the lower priority files" in {
case class Conf(f: Float)
val files = listResourcesFromNames("/conf/loadConfigFromFiles/priority1.conf", "/conf/loadConfigFromFiles/priority2.conf")
Expand All @@ -128,9 +121,16 @@ class ApiSuite extends BaseSuite {
loadConfigFromFiles[Conf](files) should failWithType[ThrowableFailure]
}

it should "fail if any of the files does not exist" in {
case class Conf(f: Float)
val files = listResourcesFromNames("/conf/loadConfigFromFiles/priority1.conf") :+ nonExistingPath
loadConfigFromFiles[Conf](files) should failWithType[CannotReadFile]
it should "ignore files that doesn't exist" in {
case class Conf(b: Boolean, d: Double)
val files = listResourcesFromNames("/conf/loadConfigFromFiles/priority2.conf") :+ nonExistingPath
loadConfigFromFiles[Conf](files) shouldBe Right(Conf(false, 0.001D))
}

"loadConfigWithFallback" should "fallback if no config keys are found" in {
case class Conf(f: Float, o: Option[Int], d: Double)
val priority1Conf = ConfigFactory.load("conf/loadConfigFromFiles/priority1.conf")
// first wo are in priority1.conf, the d is in reference.conf
loadConfigWithFallback[Conf](priority1Conf) shouldBe Right(Conf(0.99F, None, 0.0))
}
}

0 comments on commit d590e89

Please sign in to comment.