Skip to content

Commit

Permalink
Merge pull request persiancal#58 from fzerorubigd/f0rud/validate-part…
Browse files Browse the repository at this point in the history
…ial-key

add partial-key validator
  • Loading branch information
fzerorubigd authored Oct 3, 2019
2 parents 5245e29 + 55bc34d commit a103560
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 26 deletions.
11 changes: 8 additions & 3 deletions cmd/thetool/validate.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ package main

import (
"fmt"
"strings"
"regexp"
)

var (
partialValidator = regexp.MustCompile("^[a-z0-9_]+$")
)

func validate(cmd *command, fl *File) error {
Expand Down Expand Up @@ -33,8 +37,9 @@ func validateEventContent(ev []Event, p *Preset, countries []string) error {
return fmt.Errorf("the Key should not be in the input file")
}

if strings.Trim(ev[i].PartialKey, "\n\t ") == "" {
return fmt.Errorf("the partial key is empty")

if !partialValidator.MatchString(ev[i].PartialKey) {
return fmt.Errorf("the partial key %q is invalid, only lower english chars, _ and numbers are allowed ([a-z0-9_])", ev[i].PartialKey)
}

if ev[i].Month <= 0 || ev[i].Month > len(p.MonthsNormal) {
Expand Down
26 changes: 13 additions & 13 deletions cmd/thetool/validate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@ func TestValidateEventsOrder(t *testing.T) {
}{
{
events: []Event{
{Month: 1, Day: 1, PartialKey: "PK"},
{Month: 1, Day: 2, PartialKey: "PK"},
{Month: 2, Day: 2, PartialKey: "PK"},
{Month: 2, Day: 2, Year: 100, PartialKey: "PK"},
{Month: 2, Day: 2, Year: 101, PartialKey: "PK"},
{Month: 3, Day: 1, PartialKey: "PK"},
{Month: 1, Day: 1, PartialKey: "partial_key"},
{Month: 1, Day: 2, PartialKey: "partial_key"},
{Month: 2, Day: 2, PartialKey: "partial_key"},
{Month: 2, Day: 2, Year: 100, PartialKey: "partial_key"},
{Month: 2, Day: 2, Year: 101, PartialKey: "partial_key"},
{Month: 3, Day: 1, PartialKey: "partial_key"},
},
failKey: -1,
},
{
events: []Event{
{Month: 2, Day: 2, PartialKey: "PK"},
{Month: 2, Day: 1, PartialKey: "PK"},
{Month: 2, Day: 2, PartialKey: "partial_key"},
{Month: 2, Day: 1, PartialKey: "partial_key"},
},
failKey: 1,
},
Expand All @@ -49,31 +49,31 @@ func TestValidateEventsContent(t *testing.T) {
}{
{
events: []Event{
{Month: 0, Day: 1, PartialKey: "PK"},
{Month: 0, Day: 1, PartialKey: "partial_key"},
},
failKey: 0,
},
{
events: []Event{
{Month: 2, Day: -1, PartialKey: "PK"},
{Month: 2, Day: -1, PartialKey: "partial_key"},
},
failKey: 0,
},
{
events: []Event{
{Month: 7, Day: 31, PartialKey: "PK"},
{Month: 7, Day: 31, PartialKey: "partial_key"},
},
failKey: 0,
},
{
events: []Event{
{Month: 7, Day: 1, Holiday: map[string][]string{"Invalid": nil}, PartialKey: "PK"},
{Month: 7, Day: 1, Holiday: map[string][]string{"Invalid": nil}, PartialKey: "partial_key"},
},
failKey: 0,
},
{
events: []Event{
{Month: 7, Day: 1, Holiday: map[string][]string{"Iran": nil}, PartialKey: "PK"},
{Month: 7, Day: 1, Holiday: map[string][]string{"Iran": nil}, PartialKey: "partial_key"},
},
failKey: -1,
},
Expand Down
8 changes: 4 additions & 4 deletions dist/jalali.json
Original file line number Diff line number Diff line change
Expand Up @@ -1953,8 +1953,8 @@
]
},
{
"partial_key": "iran_air_Flight_655_shot_down",
"key": 236170697,
"partial_key": "iran_air_flight_655_shot_down",
"key": 3590039721,
"title": {
"fa_IR": "حملهٔ ناوگان آمریکا به هواپیمای مسافربری ایران"
},
Expand Down Expand Up @@ -2907,8 +2907,8 @@
}
},
{
"partial_key": "soviet_invasion_of_iran ",
"key": 2066847225,
"partial_key": "soviet_invasion_of_iran",
"key": 3180591399,
"title": {
"fa_IR": "اشغال ایران به دست متفقین"
},
Expand Down
8 changes: 4 additions & 4 deletions dist/jalali.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1286,8 +1286,8 @@ events:
- ایران
sources:
- https://fa.wikipedia.org/wiki/عبدالحسین_امینی
- partial_key: iran_air_Flight_655_shot_down
key: 236170697
- partial_key: iran_air_flight_655_shot_down
key: 3590039721
title:
fa_IR: حملهٔ ناوگان آمریکا به هواپیمای مسافربری ایران
description:
Expand Down Expand Up @@ -1913,8 +1913,8 @@ events:
- Ancient Iran
fa_IR:
- باستانی
- partial_key: 'soviet_invasion_of_iran '
key: 2066847225
- partial_key: soviet_invasion_of_iran
key: 3180591399
title:
fa_IR: اشغال ایران به دست متفقین
description:
Expand Down
2 changes: 1 addition & 1 deletion jalali/04-tir.yml
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ events:
- ایران
sources:
- https://fa.wikipedia.org/wiki/عبدالحسین_امینی
- partial_key: "iran_air_Flight_655_shot_down"
- partial_key: "iran_air_flight_655_shot_down"
title:
fa_IR: حملهٔ ناوگان آمریکا به هواپیمای مسافربری ایران
description:
Expand Down
2 changes: 1 addition & 1 deletion jalali/06-shahrivar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ events:
- Ancient Iran
fa_IR:
- باستانی
- partial_key: "soviet_invasion_of_iran "
- partial_key: "soviet_invasion_of_iran"
title:
fa_IR: اشغال ایران به دست متفقین
description:
Expand Down

0 comments on commit a103560

Please sign in to comment.