Shaman: skip certain tests if the platform cannot do symlinking reliably
Windows 10 Home ("Core") only allows symlinking when running as admin, which is not recommended for Flamenco Manager. Instead of failing unit tests on this system, simply skip them. This reduces noise when developing on this platform (i.e. my personal laptop) a lot.
This commit is contained in:
parent
12bc182857
commit
d60af809be
@ -9,9 +9,12 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"projects.blender.org/studio/flamenco/pkg/api"
|
"projects.blender.org/studio/flamenco/pkg/api"
|
||||||
"projects.blender.org/studio/flamenco/pkg/shaman/filestore"
|
"projects.blender.org/studio/flamenco/pkg/shaman/filestore"
|
||||||
|
"projects.blender.org/studio/flamenco/pkg/shaman/testsupport"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCheckout(t *testing.T) {
|
func TestCheckout(t *testing.T) {
|
||||||
|
testsupport.SkipTestIfUnableToSymlink(t)
|
||||||
|
|
||||||
manager, cleanup := createTestManager()
|
manager, cleanup := createTestManager()
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
@ -36,6 +36,7 @@ import (
|
|||||||
"projects.blender.org/studio/flamenco/pkg/api"
|
"projects.blender.org/studio/flamenco/pkg/api"
|
||||||
"projects.blender.org/studio/flamenco/pkg/shaman/config"
|
"projects.blender.org/studio/flamenco/pkg/shaman/config"
|
||||||
"projects.blender.org/studio/flamenco/pkg/shaman/filestore"
|
"projects.blender.org/studio/flamenco/pkg/shaman/filestore"
|
||||||
|
"projects.blender.org/studio/flamenco/pkg/shaman/testsupport"
|
||||||
)
|
)
|
||||||
|
|
||||||
func createTestManager() (*Manager, func()) {
|
func createTestManager() (*Manager, func()) {
|
||||||
@ -46,6 +47,8 @@ func createTestManager() (*Manager, func()) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestSymlinkToCheckout(t *testing.T) {
|
func TestSymlinkToCheckout(t *testing.T) {
|
||||||
|
testsupport.SkipTestIfUnableToSymlink(t)
|
||||||
|
|
||||||
manager, cleanup := createTestManager()
|
manager, cleanup := createTestManager()
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
||||||
@ -101,6 +104,8 @@ func TestPrepareCheckout(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestEraseCheckout(t *testing.T) {
|
func TestEraseCheckout(t *testing.T) {
|
||||||
|
testsupport.SkipTestIfUnableToSymlink(t)
|
||||||
|
|
||||||
manager, cleanup := createTestManager()
|
manager, cleanup := createTestManager()
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
@ -36,6 +36,7 @@ import (
|
|||||||
"projects.blender.org/studio/flamenco/pkg/shaman/config"
|
"projects.blender.org/studio/flamenco/pkg/shaman/config"
|
||||||
"projects.blender.org/studio/flamenco/pkg/shaman/filestore"
|
"projects.blender.org/studio/flamenco/pkg/shaman/filestore"
|
||||||
"projects.blender.org/studio/flamenco/pkg/shaman/jwtauth"
|
"projects.blender.org/studio/flamenco/pkg/shaman/jwtauth"
|
||||||
|
"projects.blender.org/studio/flamenco/pkg/shaman/testsupport"
|
||||||
)
|
)
|
||||||
|
|
||||||
func createTestShaman() (*Server, func()) {
|
func createTestShaman() (*Server, func()) {
|
||||||
@ -116,6 +117,8 @@ func TestGCFindOldFiles(t *testing.T) {
|
|||||||
|
|
||||||
// Test of the lower-level functions of the garbage collector.
|
// Test of the lower-level functions of the garbage collector.
|
||||||
func TestGCComponents(t *testing.T) {
|
func TestGCComponents(t *testing.T) {
|
||||||
|
testsupport.SkipTestIfUnableToSymlink(t)
|
||||||
|
|
||||||
server, cleanup := createTestShaman()
|
server, cleanup := createTestShaman()
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
||||||
@ -200,6 +203,8 @@ func TestGCComponents(t *testing.T) {
|
|||||||
|
|
||||||
// Test of the high-level GCStorage() function.
|
// Test of the high-level GCStorage() function.
|
||||||
func TestGarbageCollect(t *testing.T) {
|
func TestGarbageCollect(t *testing.T) {
|
||||||
|
testsupport.SkipTestIfUnableToSymlink(t)
|
||||||
|
|
||||||
server, cleanup := createTestShaman()
|
server, cleanup := createTestShaman()
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
||||||
|
17
pkg/shaman/testsupport/testsupport.go
Normal file
17
pkg/shaman/testsupport/testsupport.go
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package testsupport
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"projects.blender.org/studio/flamenco/pkg/sysinfo"
|
||||||
|
)
|
||||||
|
|
||||||
|
func SkipTestIfUnableToSymlink(t *testing.T) {
|
||||||
|
can, err := sysinfo.CanSymlink()
|
||||||
|
switch {
|
||||||
|
case err != nil:
|
||||||
|
t.Fatalf("error checking platform symlinking capabilities: %v", err)
|
||||||
|
case !can:
|
||||||
|
t.Skip("symlinking not possible on current platform")
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user