mirror of https://github.com/sirupsen/logrus.git
Add unit test for TextFormatter.isColored
This commit is contained in:
parent
eb968b6506
commit
cadf2ceaf8
|
@ -4,6 +4,7 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
@ -216,5 +217,218 @@ func TestTextFormatterFieldMap(t *testing.T) {
|
||||||
"Formatted output doesn't respect FieldMap")
|
"Formatted output doesn't respect FieldMap")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestTextFormatterIsColored(t *testing.T) {
|
||||||
|
params := []struct {
|
||||||
|
name string
|
||||||
|
expectedResult bool
|
||||||
|
isTerminal bool
|
||||||
|
disableColor bool
|
||||||
|
forceColor bool
|
||||||
|
envColor bool
|
||||||
|
clicolorIsSet bool
|
||||||
|
clicolorForceIsSet bool
|
||||||
|
clicolorVal string
|
||||||
|
clicolorForceVal string
|
||||||
|
}{
|
||||||
|
// Default values
|
||||||
|
{
|
||||||
|
name: "testcase1",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: false,
|
||||||
|
clicolorIsSet: false,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
},
|
||||||
|
// Output on terminal
|
||||||
|
{
|
||||||
|
name: "testcase2",
|
||||||
|
expectedResult: true,
|
||||||
|
isTerminal: true,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: false,
|
||||||
|
clicolorIsSet: false,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
},
|
||||||
|
// Output on terminal with color disabled
|
||||||
|
{
|
||||||
|
name: "testcase3",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: true,
|
||||||
|
disableColor: true,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: false,
|
||||||
|
clicolorIsSet: false,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
},
|
||||||
|
// Output not on terminal with color disabled
|
||||||
|
{
|
||||||
|
name: "testcase4",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: true,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: false,
|
||||||
|
clicolorIsSet: false,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
},
|
||||||
|
// Output not on terminal with color forced
|
||||||
|
{
|
||||||
|
name: "testcase5",
|
||||||
|
expectedResult: true,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: true,
|
||||||
|
envColor: false,
|
||||||
|
clicolorIsSet: false,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
},
|
||||||
|
// Output on terminal with clicolor set to "0"
|
||||||
|
{
|
||||||
|
name: "testcase6",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: true,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: true,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
clicolorVal: "0",
|
||||||
|
},
|
||||||
|
// Output on terminal with clicolor set to "1"
|
||||||
|
{
|
||||||
|
name: "testcase7",
|
||||||
|
expectedResult: true,
|
||||||
|
isTerminal: true,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: true,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
clicolorVal: "1",
|
||||||
|
},
|
||||||
|
// Output not on terminal with clicolor set to "0"
|
||||||
|
{
|
||||||
|
name: "testcase8",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: true,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
clicolorVal: "0",
|
||||||
|
},
|
||||||
|
// Output not on terminal with clicolor set to "1"
|
||||||
|
{
|
||||||
|
name: "testcase9",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: true,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
clicolorVal: "1",
|
||||||
|
},
|
||||||
|
// Output not on terminal with clicolor set to "1" and force color
|
||||||
|
{
|
||||||
|
name: "testcase10",
|
||||||
|
expectedResult: true,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: true,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: true,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
clicolorVal: "1",
|
||||||
|
},
|
||||||
|
// Output not on terminal with clicolor set to "0" and force color
|
||||||
|
{
|
||||||
|
name: "testcase11",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: true,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: true,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
clicolorVal: "0",
|
||||||
|
},
|
||||||
|
// Output not on terminal with clicolor set to "1"
|
||||||
|
{
|
||||||
|
name: "testcase12",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: true,
|
||||||
|
clicolorForceIsSet: false,
|
||||||
|
clicolorVal: "1",
|
||||||
|
},
|
||||||
|
// Output not on terminal with clicolor_force set to "1"
|
||||||
|
{
|
||||||
|
name: "testcase13",
|
||||||
|
expectedResult: true,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: false,
|
||||||
|
clicolorForceIsSet: true,
|
||||||
|
clicolorForceVal: "1",
|
||||||
|
},
|
||||||
|
// Output not on terminal with clicolor_force set to "0"
|
||||||
|
{
|
||||||
|
name: "testcase14",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: false,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: false,
|
||||||
|
clicolorForceIsSet: true,
|
||||||
|
clicolorForceVal: "0",
|
||||||
|
},
|
||||||
|
// Output on terminal with clicolor_force set to "0"
|
||||||
|
{
|
||||||
|
name: "testcase14",
|
||||||
|
expectedResult: false,
|
||||||
|
isTerminal: true,
|
||||||
|
disableColor: false,
|
||||||
|
forceColor: false,
|
||||||
|
envColor: true,
|
||||||
|
clicolorIsSet: false,
|
||||||
|
clicolorForceIsSet: true,
|
||||||
|
clicolorForceVal: "0",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
defer os.Clearenv()
|
||||||
|
|
||||||
|
for _, val := range params {
|
||||||
|
t.Run("textformatter_"+val.name, func(subT *testing.T) {
|
||||||
|
tf := TextFormatter{
|
||||||
|
isTerminal: val.isTerminal,
|
||||||
|
DisableColors: val.disableColor,
|
||||||
|
ForceColors: val.forceColor,
|
||||||
|
EnvironmentOverrideColors: val.envColor,
|
||||||
|
}
|
||||||
|
os.Clearenv()
|
||||||
|
if val.clicolorIsSet {
|
||||||
|
os.Setenv("CLICOLOR", val.clicolorVal)
|
||||||
|
}
|
||||||
|
if val.clicolorForceIsSet {
|
||||||
|
os.Setenv("CLICOLOR_FORCE", val.clicolorForceVal)
|
||||||
|
}
|
||||||
|
res := tf.isColored()
|
||||||
|
assert.Equal(subT, val.expectedResult, res)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO add tests for sorting etc., this requires a parser for the text
|
// TODO add tests for sorting etc., this requires a parser for the text
|
||||||
// formatter output.
|
// formatter output.
|
||||||
|
|
Loading…
Reference in New Issue