do not lower keys

Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
Victor Vieux 2016-02-11 11:12:39 -08:00
parent 7952727bb7
commit 494e0655dd
2 changed files with 20 additions and 8 deletions

View File

@ -57,9 +57,9 @@ func parseExprs(env []string) ([]expr, error) {
if matched == false { if matched == false {
return nil, fmt.Errorf("Value '%s' is invalid", parts[1]) return nil, fmt.Errorf("Value '%s' is invalid", parts[1])
} }
exprs = append(exprs, expr{key: strings.ToLower(parts[0]), operator: i, value: strings.TrimLeft(parts[1], "~"), isSoft: isSoft(parts[1])}) exprs = append(exprs, expr{key: parts[0], operator: i, value: strings.TrimLeft(parts[1], "~"), isSoft: isSoft(parts[1])})
} else { } else {
exprs = append(exprs, expr{key: strings.ToLower(parts[0]), operator: i}) exprs = append(exprs, expr{key: parts[0], operator: i})
} }
found = true found = true

View File

@ -24,28 +24,40 @@ func TestParseExprs(t *testing.T) {
assert.Error(t, err) assert.Error(t, err)
// Allow CAPS in key // Allow CAPS in key
_, err = parseExprs([]string{"NoDe==node1"}) exprs, err := parseExprs([]string{"NoDe==node1"})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "NoDe")
assert.Equal(t, exprs[0].value, "node1")
// Allow dot in key // Allow dot in key
_, err = parseExprs([]string{"no.de==node1"}) exprs, err = parseExprs([]string{"no.de==node1"})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "no.de")
assert.Equal(t, exprs[0].value, "node1")
// Allow leading underscore // Allow leading underscore
_, err = parseExprs([]string{"_node==_node1"}) exprs, err = parseExprs([]string{"_node==_node1"})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "_node")
assert.Equal(t, exprs[0].value, "_node1")
// Allow globbing // Allow globbing
_, err = parseExprs([]string{"node==*node*"}) exprs, err = parseExprs([]string{"node==*node*"})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "node")
assert.Equal(t, exprs[0].value, "*node*")
// Allow regexp in value // Allow regexp in value
_, err = parseExprs([]string{"node==/(?i)^[a-b]+c*(n|b)$/"}) exprs, err = parseExprs([]string{"node==/(?i)^[a-b]+c*(n|b)$/"})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "node")
assert.Equal(t, exprs[0].value, "/(?i)^[a-b]+c*(n|b)$/")
// Allow space in value // Allow space in value
_, err = parseExprs([]string{"node==node 1"}) exprs, err = parseExprs([]string{"node==node 1"})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "node")
assert.Equal(t, exprs[0].value, "node 1")
} }
func TestMatch(t *testing.T) { func TestMatch(t *testing.T) {