diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000..d31e87f --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,37 @@ +name: Go + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - name: Set up Go 1.x + uses: actions/setup-go@v2 + with: + go-version: ^1.13 + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Get dependencies + run: | + go get -v -t -d ./... + if [ -f Gopkg.toml ]; then + curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh + dep ensure + fi + + - name: Build + run: go build -v . + + - name: Test + run: go test -v . diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000..d473f31 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,2 @@ +tasks: + - init: go get && make build && make test diff --git a/README.md b/README.md index 717244a..9cd2f05 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,16 @@ -# go - openweatherapi + +[![Go Report Card](https://goreportcard.com/badge/github.com/EricNeid/go-openweather?style=flat-square)](https://goreportcard.com/report/github.com/EricNeid/go-openweather) +![Go](https://github.com/EricNeid/go-openweather/workflows/Go/badge.svg) +[![Go Doc](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](http://godoc.org/github.com/EricNeid/go-openweather) +[![Release](https://img.shields.io/github/release/EricNeid/go-openweather.svg?style=flat-square)](https://github.com/EricNeid/go-openweather/releases/latest) +[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/EricNeid/go-openweather) + +# About This Repo contains golang library to query OpenWetherMaps () for weather information. -* current weather: http://openweathermap.org/current -* 5 days forecast: http://openweathermap.org/forecast5 +* current weather: +* 5 days forecast: ## Install diff --git a/api_test.go b/integration_test.go similarity index 80% rename from api_test.go rename to integration_test.go index 1090c26..40e63ca 100644 --- a/api_test.go +++ b/integration_test.go @@ -1,10 +1,12 @@ +// +build integration + package openweather import ( "io/ioutil" "testing" - "github.com/EricNeid/go-openweather/internal/test" + "github.com/EricNeid/go-openweather/internal/verify" ) const apiKeyFile = "testdata/api.key" @@ -29,8 +31,8 @@ func TestForecastRaw(t *testing.T) { // action resp, err := q.DailyForecast5Raw() // verify - test.Ok(t, err) - test.Assert(t, len(resp) > 0, "Received empty response") + verify.Ok(t, err) + verify.Assert(t, len(resp) > 0, "Received empty response") } func TestWeatherRaw(t *testing.T) { @@ -39,8 +41,8 @@ func TestWeatherRaw(t *testing.T) { // action resp, err := q.WeatherRaw() // verify - test.Ok(t, err) - test.Assert(t, len(resp) > 0, "Received empty response") + verify.Ok(t, err) + verify.Assert(t, len(resp) > 0, "Received empty response") } func TestWeather(t *testing.T) { @@ -49,8 +51,8 @@ func TestWeather(t *testing.T) { // action data, err := q.Weather() // verify - test.Ok(t, err) - test.Equals(t, "Berlin", data.Name) + verify.Ok(t, err) + verify.Equals(t, "Berlin", data.Name) } func TestDailyForecast(t *testing.T) { @@ -59,8 +61,8 @@ func TestDailyForecast(t *testing.T) { // action data, err := q.DailyForecast5() // verify - test.Ok(t, err) - test.Equals(t, "Berlin", data.City.Name) + verify.Ok(t, err) + verify.Equals(t, "Berlin", data.City.Name) } func TestDailyForecast5(t *testing.T) { diff --git a/internal/test/testing_utils.go b/internal/verify/testing_utils.go similarity index 98% rename from internal/test/testing_utils.go rename to internal/verify/testing_utils.go index 3497485..9265105 100644 --- a/internal/test/testing_utils.go +++ b/internal/verify/testing_utils.go @@ -1,4 +1,4 @@ -package test +package verify import ( "fmt" diff --git a/query_test.go b/query_test.go index 6a1c20b..80e452a 100644 --- a/query_test.go +++ b/query_test.go @@ -3,27 +3,27 @@ package openweather import ( "testing" - "github.com/EricNeid/go-openweather/internal/test" + "github.com/EricNeid/go-openweather/internal/verify" ) func TestNewQueryForCity(t *testing.T) { // arrange apiKey := "testKey" - location := cityBerlin + location := "Berlin,de" // action q := NewQueryForCity(apiKey, location) // verify - test.Equals(t, apiKey, q.APIKey) - test.Equals(t, location, q.Query) - test.Equals(t, "metric", q.Unit) - test.Equals(t, queryTypeCity, q.queryType) + verify.Equals(t, apiKey, q.APIKey) + verify.Equals(t, location, q.Query) + verify.Equals(t, "metric", q.Unit) + verify.Equals(t, queryTypeCity, q.queryType) // arrange unit := "imperial" // action q = NewQueryForCity(apiKey, location, unit) // verify - test.Equals(t, unit, q.Unit) + verify.Equals(t, unit, q.Unit) } func TestNewQueryForZip(t *testing.T) { @@ -33,9 +33,9 @@ func TestNewQueryForZip(t *testing.T) { // action q := NewQueryForZip(apiKey, zip) // verify - test.Equals(t, apiKey, q.APIKey) - test.Equals(t, zip, q.Query) - test.Equals(t, queryTypeZip, q.queryType) + verify.Equals(t, apiKey, q.APIKey) + verify.Equals(t, zip, q.Query) + verify.Equals(t, queryTypeZip, q.queryType) } func TestNewQueryForID(t *testing.T) { @@ -45,9 +45,9 @@ func TestNewQueryForID(t *testing.T) { // action q := NewQueryForID(apiKey, id) // verify - test.Equals(t, apiKey, q.APIKey) - test.Equals(t, id, q.Query) - test.Equals(t, queryTypeID, q.queryType) + verify.Equals(t, apiKey, q.APIKey) + verify.Equals(t, id, q.Query) + verify.Equals(t, queryTypeID, q.queryType) } func TestNewQueryForLocation(t *testing.T) { @@ -58,7 +58,7 @@ func TestNewQueryForLocation(t *testing.T) { // action q := NewQueryForLocation(apiKey, lat, lon) // verify - test.Equals(t, apiKey, q.APIKey) - test.Equals(t, lat+"|"+lon, q.Query) - test.Equals(t, queryTypeGeo, q.queryType) + verify.Equals(t, apiKey, q.APIKey) + verify.Equals(t, lat+"|"+lon, q.Query) + verify.Equals(t, queryTypeGeo, q.queryType) }