github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/clients/testing/conditions_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/gophercloud/gophercloud/internal/acceptance/clients"
     9  )
    10  
    11  func TestIsCurrentAbove(t *testing.T) {
    12  	cases := []struct {
    13  		Current string
    14  		Release string
    15  		Result  bool
    16  	}{
    17  		{Current: "master", Release: "zed", Result: true},
    18  		{Current: "master", Release: "2023.1", Result: true},
    19  		{Current: "master", Release: "master", Result: false},
    20  		{Current: "zed", Release: "master", Result: false},
    21  		{Current: "zed", Release: "yoga", Result: true},
    22  		{Current: "zed", Release: "2023.1", Result: false},
    23  		{Current: "2023.1", Release: "2023.1", Result: false},
    24  		{Current: "2023.2", Release: "stable/2023.1", Result: true},
    25  	}
    26  
    27  	for _, tt := range cases {
    28  		t.Run(fmt.Sprintf("%s above %s", tt.Current, tt.Release), func(t *testing.T) {
    29  			os.Setenv("OS_BRANCH", tt.Current)
    30  			got := clients.IsCurrentAbove(t, tt.Release)
    31  			if got != tt.Result {
    32  				t.Errorf("got %v want %v", got, tt.Result)
    33  			}
    34  		})
    35  
    36  	}
    37  }
    38  
    39  func TestIsCurrentBelow(t *testing.T) {
    40  	cases := []struct {
    41  		Current string
    42  		Release string
    43  		Result  bool
    44  	}{
    45  		{Current: "master", Release: "zed", Result: false},
    46  		{Current: "master", Release: "2023.1", Result: false},
    47  		{Current: "master", Release: "master", Result: false},
    48  		{Current: "zed", Release: "master", Result: true},
    49  		{Current: "zed", Release: "yoga", Result: false},
    50  		{Current: "zed", Release: "2023.1", Result: true},
    51  		{Current: "2023.1", Release: "2023.1", Result: false},
    52  		{Current: "2023.2", Release: "stable/2023.1", Result: false},
    53  	}
    54  
    55  	for _, tt := range cases {
    56  		t.Run(fmt.Sprintf("%s below %s", tt.Current, tt.Release), func(t *testing.T) {
    57  			os.Setenv("OS_BRANCH", tt.Current)
    58  			got := clients.IsCurrentBelow(t, tt.Release)
    59  			if got != tt.Result {
    60  				t.Errorf("got %v want %v", got, tt.Result)
    61  			}
    62  		})
    63  
    64  	}
    65  }