From 2c34fbefe25f1c6d05d9fe86707e63fa4dddbb0c Mon Sep 17 00:00:00 2001 From: klmp200 Date: Mon, 23 Jul 2018 17:52:29 +0200 Subject: [PATCH 1/3] Basic test architecture --- .drone.yml | 7 +++++++ alfred_test.go | 8 ++++++++ 2 files changed, 15 insertions(+) create mode 100644 alfred_test.go diff --git a/.drone.yml b/.drone.yml index f255336..7629c3a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -4,6 +4,13 @@ pipeline: commands: - go get -v -d ./... - go build . + test: + image: golang + secrets: [ test_api_token ] + environment: [ test_api_token ] + commands: + - go get -v -d ./... + - go test ./... publish: image: plugins/docker repo: klmp200/alfred diff --git a/alfred_test.go b/alfred_test.go new file mode 100644 index 0000000..8c3dfdc --- /dev/null +++ b/alfred_test.go @@ -0,0 +1,8 @@ +/* +* @Author: Bartuccio Antoine +* @Date: 2018-07-23 17:48:18 +* @Last Modified by: klmp200 +* @Last Modified time: 2018-07-23 17:48:22 + */ + +package main From 2cd142844d61b8b0bc45231ced2339dfbea80a3c Mon Sep 17 00:00:00 2001 From: klmp200 Date: Mon, 23 Jul 2018 19:25:35 +0200 Subject: [PATCH 2/3] Tests for settings --- .drone.yml | 1 - alfred.go | 6 ++++-- settings/settings.go | 10 ++++++---- settings/settings_test.go | 39 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 48 insertions(+), 8 deletions(-) diff --git a/.drone.yml b/.drone.yml index 7629c3a..7214ce2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,7 +9,6 @@ pipeline: secrets: [ test_api_token ] environment: [ test_api_token ] commands: - - go get -v -d ./... - go test ./... publish: image: plugins/docker diff --git a/alfred.go b/alfred.go index 4b715cd..e84b9a3 100644 --- a/alfred.go +++ b/alfred.go @@ -2,7 +2,7 @@ * @Author: Bartuccio Antoine * @Date: 2018-07-23 15:24:22 * @Last Modified by: klmp200 -* @Last Modified time: 2018-07-23 17:25:09 +* @Last Modified time: 2018-07-23 19:14:10 */ package main @@ -15,7 +15,9 @@ import ( ) func main() { - settings.LoadSettings("settings.json", "settings_custom.json") + if err := settings.LoadSettings("settings.json", "settings_custom.json"); err != nil { + log.Fatal(err) + } log.Println("Bot initialisation") b, err := tb.NewBot(tb.Settings{ diff --git a/settings/settings.go b/settings/settings.go index a55f5a9..f512171 100644 --- a/settings/settings.go +++ b/settings/settings.go @@ -2,7 +2,7 @@ * @Author: Bartuccio Antoine * @Date: 2018-07-23 15:24:30 * @Last Modified by: klmp200 -* @Last Modified time: 2018-07-23 16:02:42 +* @Last Modified time: 2018-07-23 19:14:44 */ package settings @@ -27,18 +27,20 @@ func loadJson(path string) error { } // Load settings from given files paths -// Default settings are mandatory and program crash if there is an error at importation +// Default settings are mandatory and program should crash if there is an error at importation // Custom settings are skipped if malformed or not found -func LoadSettings(settings_default_path, settings_custom_path string) { +func LoadSettings(settings_default_path, settings_custom_path string) error { log.Println("Loading settings") Settings = make(map[string]interface{}) if err := loadJson(settings_default_path); err != nil { log.Println("error importing default settings") - log.Fatal(err) + log.Println(err) + return err } if err := loadJson(settings_custom_path); err != nil { log.Println("error importing custom settings, skipping") log.Println(err) } log.Println("Settings loaded") + return nil } diff --git a/settings/settings_test.go b/settings/settings_test.go index fdd20bd..faac5c8 100644 --- a/settings/settings_test.go +++ b/settings/settings_test.go @@ -2,7 +2,44 @@ * @Author: Bartuccio Antoine * @Date: 2018-07-23 16:08:28 * @Last Modified by: klmp200 -* @Last Modified time: 2018-07-23 16:08:37 +* @Last Modified time: 2018-07-23 19:23:49 */ package settings + +import ( + "testing" +) + +func TestLoadSettings(t *testing.T) { + if LoadSettings("", "") == nil { + t.Error("no error for inexstant main settings file") + } + if LoadSettings("../settings.json", "") != nil { + t.Error("error for existant and well formated main settings file") + } + if LoadSettings("../settings.json", "settings.go") != nil { + t.Error("error for malformed custom settings json, should have ignored") + } + if LoadSettings("../settings.json", "../settings.json") != nil { + t.Error("error but everything should be fine") + } + if token, ok := Settings["token"]; !ok { + t.Error("token not loaded") + } else if token != "INSERT TOKEN HERE" { + t.Error("token is not \"INSERT TOKEN HERE\"") + } +} + +func TestLoadJson(t *testing.T) { + t.Log("testing loadJson") + if loadJson("") == nil { + t.Error("no error for empty json") + } + if loadJson("../settings.json") != nil { + t.Error("error while loading settings.json") + } + if loadJson("settings.go") == nil { + t.Error("no error for malformed json") + } +} From cb64d56c3fb7ff68d545dbc317f9faf2c3355625 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Mon, 23 Jul 2018 19:26:46 +0200 Subject: [PATCH 3/3] Parrallel testing --- .drone.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.drone.yml b/.drone.yml index 7214ce2..9ba4933 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,14 +1,17 @@ pipeline: build: image: golang + group: build commands: - go get -v -d ./... - go build . test: image: golang + group: build secrets: [ test_api_token ] environment: [ test_api_token ] commands: + - go get -v -d ./... - go test ./... publish: image: plugins/docker