Skip to content

Commit

Permalink
More tests converted to suites
Browse files Browse the repository at this point in the history
  • Loading branch information
ashb committed May 29, 2024
1 parent fde0d5b commit 420a6b8
Show file tree
Hide file tree
Showing 73 changed files with 4,859 additions and 4,931 deletions.
1 change: 0 additions & 1 deletion airflow/docker_image.go
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,6 @@ func (d *DockerImage) Push(remoteImage, username, token string) error {
log.Debugf("Exec Push %s creds %v \n", dockerCommand, authConfig)

err = d.pushWithClient(&authConfig, remoteImage)

if err != nil {
// if it does not work with the go library use bash to run docker commands. Support for (old?) versions of Colima
err = pushWithBash(&authConfig, remoteImage)
Expand Down
10 changes: 6 additions & 4 deletions airflow/docker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1976,9 +1976,10 @@ func (s *Suite) TestCreateDockerProject() {
s.Run("case when project doesnot have docker-compose.override.yml", func() {
prj, err := createDockerProject("test", "", "", "test-image:latest", "", "", map[string]string{})
s.NoError(err)
postgresService := types.ServiceConfig{}
postgresService := &types.ServiceConfig{}
serviceFound := false
for _, service := range prj.Services {
for i := range prj.Services {
service := &prj.Services[i]
if service.Name == "webserver" {
postgresService = service
serviceFound = true
Expand All @@ -1993,9 +1994,10 @@ func (s *Suite) TestCreateDockerProject() {
composeOverrideFilename = "./testfiles/docker-compose.override.yml"
prj, err := createDockerProject("test", "", "", "test-image:latest", "", "", map[string]string{})
s.NoError(err)
postgresService := types.ServiceConfig{}
postgresService := &types.ServiceConfig{}
serviceFound := false
for _, service := range prj.Services {
for i := range prj.Services {
service := &prj.Services[i]
if service.Name == "postgres" {
postgresService = service
serviceFound = true
Expand Down
18 changes: 10 additions & 8 deletions airflow/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,25 @@ import (

type Suite struct {
suite.Suite
origCmdExec func(cmd string, stdout, stderr io.Writer, args ...string) error
origGetDockerClient func() (client.APIClient, error)
origCmdExec func(cmd string, stdout, stderr io.Writer, args ...string) error
origGetDockerClient func() (client.APIClient, error)
}

var _ suite.SetupAllSuite = (*Suite)(nil)
var _ suite.TearDownTestSuite = (*Suite)(nil)
var (
_ suite.SetupAllSuite = (*Suite)(nil)
_ suite.TearDownTestSuite = (*Suite)(nil)
)

func TestAirflow(t *testing.T) {
suite.Run(t, new(Suite))
}

func (s *Suite) SetupSuite() {
s.origCmdExec = cmdExec
s.origGetDockerClient = getDockerClient
s.origCmdExec = cmdExec
s.origGetDockerClient = getDockerClient
}

func (s *Suite) TearDownTest() {
cmdExec = s.origCmdExec
getDockerClient = s.origGetDockerClient
cmdExec = s.origCmdExec
getDockerClient = s.origGetDockerClient
}
48 changes: 27 additions & 21 deletions airflow_versions/airflow_versions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,20 @@ import (
"net/http"
"testing"

semver "github.com/Masterminds/semver/v3"
testUtil "github.com/astronomer/astro-cli/pkg/testing"
"github.com/stretchr/testify/suite"
)

"github.com/stretchr/testify/assert"
type Suite struct {
suite.Suite
}

semver "github.com/Masterminds/semver/v3"
)
func TestAirflowVersions(t *testing.T) {
suite.Run(t, new(Suite))
}

func TestGetAstronomerCertifiedTag(t *testing.T) {
func (s *Suite) TestGetAstronomerCertifiedTag() {
testUtil.InitTestConfig(testUtil.LocalPlatform)

availableReleases := []AirflowVersionRaw{
Expand Down Expand Up @@ -82,15 +88,15 @@ func TestGetAstronomerCertifiedTag(t *testing.T) {
for _, tt := range tests {
defaultImageTag, err := getAstronomerCertifiedTag(availableReleases, tt.airflowVersion)
if tt.err == nil {
assert.NoError(t, err)
s.NoError(err)
} else {
assert.EqualError(t, err, tt.err.Error())
s.EqualError(err, tt.err.Error())
}
assert.Equal(t, tt.output, defaultImageTag)
s.Equal(tt.output, defaultImageTag)
}
}

func TestGetAstroRuntimeTag(t *testing.T) {
func (s *Suite) TestGetAstroRuntimeTag() {
tagToRuntimeVersion := map[string]RuntimeVersion{
"2.1.1": {
Metadata: RuntimeVersionMetadata{
Expand Down Expand Up @@ -157,18 +163,18 @@ func TestGetAstroRuntimeTag(t *testing.T) {
for _, tt := range tests {
defaultImageTag, err := getAstroRuntimeTag(tagToRuntimeVersion, tt.airflowVersion)
if tt.err == nil {
assert.NoError(t, err)
s.NoError(err)
} else {
assert.EqualError(t, err, tt.err.Error())
s.EqualError(err, tt.err.Error())
}
assert.Equal(t, tt.output, defaultImageTag)
s.Equal(tt.output, defaultImageTag)
}
}

func TestGetDefaultImageTag(t *testing.T) {
func (s *Suite) TestGetDefaultImageTag() {
testUtil.InitTestConfig(testUtil.LocalPlatform)

t.Run("certified", func(t *testing.T) {
s.Run("certified", func() {
mockResp := &Response{
AvailableReleases: []AirflowVersionRaw{
{
Expand Down Expand Up @@ -230,11 +236,11 @@ func TestGetDefaultImageTag(t *testing.T) {
httpClient := NewClient(client, true)

defaultImageTag, err := GetDefaultImageTag(httpClient, "")
assert.NoError(t, err)
assert.Equal(t, "2.2.0-onbuild", defaultImageTag)
s.NoError(err)
s.Equal("2.2.0-onbuild", defaultImageTag)
})

t.Run("runtime", func(t *testing.T) {
s.Run("runtime", func() {
mockResp := &Response{
RuntimeVersions: map[string]RuntimeVersion{
"2.1.1": {
Expand Down Expand Up @@ -300,12 +306,12 @@ func TestGetDefaultImageTag(t *testing.T) {
httpClient := NewClient(client, false)

defaultImageTag, err := GetDefaultImageTag(httpClient, "")
assert.NoError(t, err)
assert.Equal(t, "4.0.0", defaultImageTag)
s.NoError(err)
s.Equal("4.0.0", defaultImageTag)
})
}

func TestGetDefaultImageTagError(t *testing.T) {
func (s *Suite) TestGetDefaultImageTagError() {
testUtil.InitTestConfig(testUtil.LocalPlatform)
okResponse := `Page not found`
client := testUtil.NewTestClient(func(req *http.Request) *http.Response {
Expand All @@ -318,6 +324,6 @@ func TestGetDefaultImageTagError(t *testing.T) {
httpClient := NewClient(client, true)

defaultImageTag, err := GetDefaultImageTag(httpClient, "")
assert.Error(t, err)
assert.Equal(t, "", defaultImageTag)
s.Error(err)
s.Equal("", defaultImageTag)
}
12 changes: 5 additions & 7 deletions airflow_versions/http_client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,16 @@ import (
"encoding/json"
"io"
"net/http"
"testing"

"github.com/astronomer/astro-cli/pkg/httputil"
testUtil "github.com/astronomer/astro-cli/pkg/testing"
"github.com/stretchr/testify/assert"
)

func TestClientDo(t *testing.T) {
t.Run("success", func(t *testing.T) {
func (s *Suite) TestClientDo() {
s.Run("success", func() {
mockResp := Response{RuntimeVersions: map[string]RuntimeVersion{"4.2.5": {RuntimeVersionMetadata{AirflowVersion: "2.2.5", Channel: "stable"}, RuntimeVersionMigrations{}}}}
jsonResponse, err := json.Marshal(mockResp)
assert.NoError(t, err)
s.NoError(err)

httpClient := testUtil.NewTestClient(func(req *http.Request) *http.Response {
return &http.Response{
Expand All @@ -28,7 +26,7 @@ func TestClientDo(t *testing.T) {

client := &Client{HTTPClient: httpClient, useAstronomerCertified: false}
resp, err := client.Do(&httputil.DoOptions{})
assert.NoError(t, err)
assert.Equal(t, mockResp, *resp)
s.NoError(err)
s.Equal(mockResp, *resp)
})
}
112 changes: 53 additions & 59 deletions airflow_versions/types_test.go
Original file line number Diff line number Diff line change
@@ -1,102 +1,96 @@
package airflowversions

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestNewAirflowVersion(t *testing.T) {
func (s *Suite) TestNewAirflowVersion() {
av, err := NewAirflowVersion("2.0.0-1", []string{"2.0.0-1-buster-onbuild"})
assert.NoError(t, err)
assert.Equal(t, uint64(2), av.Major())
assert.Equal(t, uint64(0), av.Minor())
assert.Equal(t, uint64(0), av.Patch())
assert.Equal(t, uint64(1), av.postN1)
s.NoError(err)
s.Equal(uint64(2), av.Major())
s.Equal(uint64(0), av.Minor())
s.Equal(uint64(0), av.Patch())
s.Equal(uint64(1), av.postN1)
}

func TestNewAirflowVersionError(t *testing.T) {
func (s *Suite) TestNewAirflowVersionError() {
av, err := NewAirflowVersion("-1", []string{"2.0.0-1-buster-onbuild"})
assert.Error(t, err)
assert.Nil(t, av)
s.Error(err)
s.Nil(av)
}

func TestNewAirflowVersionWithoutPostN1(t *testing.T) {
func (s *Suite) TestNewAirflowVersionWithoutPostN1() {
av, err := NewAirflowVersion("2.0.0", []string{"2.0.0-buster-onbuild"})
assert.NoError(t, err)
assert.Equal(t, uint64(2), av.Major())
assert.Equal(t, uint64(0), av.Minor())
assert.Equal(t, uint64(0), av.Patch())
assert.Equal(t, uint64(0), av.postN1)
s.NoError(err)
s.Equal(uint64(2), av.Major())
s.Equal(uint64(0), av.Minor())
s.Equal(uint64(0), av.Patch())
s.Equal(uint64(0), av.postN1)
}

func TestNewAirflowVersionWithPostN1(t *testing.T) {
func (s *Suite) TestNewAirflowVersionWithPostN1() {
av, err := NewAirflowVersion("1.10.5-11", []string{"1.10.5-11-alpine3.10-onbuild"})
assert.NoError(t, err)
assert.Equal(t, uint64(1), av.Major())
assert.Equal(t, uint64(10), av.Minor())
assert.Equal(t, uint64(5), av.Patch())
assert.Equal(t, uint64(11), av.postN1)
s.NoError(err)
s.Equal(uint64(1), av.Major())
s.Equal(uint64(10), av.Minor())
s.Equal(uint64(5), av.Patch())
s.Equal(uint64(11), av.postN1)
}

func TestCompareAirflowVersionsHighPostN1(t *testing.T) {
func (s *Suite) TestCompareAirflowVersionsHighPostN1() {
av1, err := NewAirflowVersion("1.10.5-11", []string{"1.10.5-11-alpine3.10-onbuild"})
assert.NoError(t, err)
s.NoError(err)
av2, err := NewAirflowVersion("1.10.5", []string{"1.10.5-alpine3.10-onbuild"})
assert.NoError(t, err)
assert.Equal(t, 1, av1.Compare(av2))
s.NoError(err)
s.Equal(1, av1.Compare(av2))
}

func TestCompareAirflowVersionsLowPostN1(t *testing.T) {
func (s *Suite) TestCompareAirflowVersionsLowPostN1() {
av1, err := NewAirflowVersion("1.10.5", []string{"1.10.5-alpine3.10-onbuild"})
assert.NoError(t, err)
s.NoError(err)
av2, err := NewAirflowVersion("1.10.5-11", []string{"1.10.5-11-alpine3.10-onbuild"})
assert.NoError(t, err)
assert.Equal(t, -1, av1.Compare(av2))
s.NoError(err)
s.Equal(-1, av1.Compare(av2))
}

func TestCompareAirflowVersionsSamePostN1(t *testing.T) {
func (s *Suite) TestCompareAirflowVersionsSamePostN1() {
av1, err := NewAirflowVersion("1.10.5-11", []string{"1.10.5-11-alpine3.10-onbuild"})
assert.NoError(t, err)
s.NoError(err)
av2, err := NewAirflowVersion("1.10.5-11", []string{"1.10.5-11-alpine3.10-onbuild"})
assert.NoError(t, err)
assert.Equal(t, 0, av1.Compare(av2))
s.NoError(err)
s.Equal(0, av1.Compare(av2))
}

func TestCompareAirflowVersionsMajor(t *testing.T) {
func (s *Suite) TestCompareAirflowVersionsMajor() {
av1, err := NewAirflowVersion("2.10.5-11", []string{"2.10.5-11-alpine3.10-onbuild"})
assert.NoError(t, err)
s.NoError(err)
av2, err := NewAirflowVersion("1.10.5", []string{"1.10.5-alpine3.10-onbuild"})
assert.NoError(t, err)
assert.Equal(t, 1, av1.Compare(av2))
s.NoError(err)
s.Equal(1, av1.Compare(av2))
}

func TestCompareAirflowVersionsMinor(t *testing.T) {
func (s *Suite) TestCompareAirflowVersionsMinor() {
av1, err := NewAirflowVersion("1.11.5-11", []string{"1.11.5-11-alpine3.10-onbuild"})
assert.NoError(t, err)
s.NoError(err)
av2, err := NewAirflowVersion("1.10.5", []string{"1.10.5-alpine3.10-onbuild"})
assert.NoError(t, err)
assert.Equal(t, 1, av1.Compare(av2))
s.NoError(err)
s.Equal(1, av1.Compare(av2))
}

func TestCompareAirflowVersionsPatch(t *testing.T) {
func (s *Suite) TestCompareAirflowVersionsPatch() {
av1, err := NewAirflowVersion("1.10.6", []string{"1.11.6-alpine3.10-onbuild"})
assert.NoError(t, err)
s.NoError(err)
av2, err := NewAirflowVersion("1.10.5", []string{"1.10.5-alpine3.10-onbuild"})
assert.NoError(t, err)
assert.Equal(t, 1, av1.Compare(av2))
s.NoError(err)
s.Equal(1, av1.Compare(av2))
}

func TestGreaterThan(t *testing.T) {
func (s *Suite) TestGreaterThan() {
av1, err := NewAirflowVersion("1.10.5-11", []string{"1.10.5-11-alpine3.10-onbuild"})
assert.NoError(t, err)
s.NoError(err)
av2, err := NewAirflowVersion("1.10.5", []string{"1.10.5-alpine3.10-onbuild"})
assert.NoError(t, err)
assert.Equal(t, true, av1.GreaterThan(av2))
s.NoError(err)
s.Equal(true, av1.GreaterThan(av2))
}

func Test_compareSegment(t *testing.T) {
assert.Equal(t, 0, compareSegment(1, 1))
assert.Equal(t, -1, compareSegment(1, 2))
assert.Equal(t, 1, compareSegment(2, 1))
func (s *Suite) Test_compareSegment() {
s.Equal(0, compareSegment(1, 1))
s.Equal(-1, compareSegment(1, 2))
s.Equal(1, compareSegment(2, 1))
}
Loading

0 comments on commit 420a6b8

Please sign in to comment.