mirror of
https://codeberg.org/scip/tablizer.git
synced 2025-12-18 13:01:11 +01:00
re-organized pattern matching code
This commit is contained in:
@@ -186,14 +186,15 @@ func (c *Config) ApplyDefaults() {
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Config) PreparePattern() error {
|
||||
PatternR, err := regexp.Compile(c.Pattern)
|
||||
func (c *Config) PreparePattern(pattern string) error {
|
||||
PatternR, err := regexp.Compile(pattern)
|
||||
|
||||
if err != nil {
|
||||
return errors.Unwrap(fmt.Errorf("Regexp pattern %s is invalid: %w", c.Pattern, err))
|
||||
}
|
||||
|
||||
c.PatternR = PatternR
|
||||
c.Pattern = pattern
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -76,3 +76,28 @@ func TestPrepareSortFlags(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestPreparePattern(t *testing.T) {
|
||||
var tests = []struct {
|
||||
pattern string
|
||||
wanterr bool
|
||||
}{
|
||||
{"[A-Z]+", false},
|
||||
{"[a-z", true},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
testname := fmt.Sprintf("PreparePattern-pattern-%s-wanterr-%t", tt.pattern, tt.wanterr)
|
||||
t.Run(testname, func(t *testing.T) {
|
||||
c := Config{}
|
||||
|
||||
err := c.PreparePattern(tt.pattern)
|
||||
|
||||
if err != nil {
|
||||
if !tt.wanterr {
|
||||
t.Errorf("PreparePattern returned error: %s", err)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user