MCPcopy Create free account
hub / github.com/JonasProgrammer/docker-machine-driver-hetzner / TestUserData

Function TestUserData

driver/driver_test.go:30–109  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

28}
29
30func TestUserData(t *testing.T) {
31 const fileContents = "User data from file"
32 const inlineContents = "User data"
33
34 file := t.TempDir() + string(os.PathSeparator) + "userData"
35 err := os.WriteFile(file, []byte(fileContents), 0644)
36 if err != nil {
37 t.Fatal(err)
38 }
39
40 // mutual exclusion data <=> data file
41 d := NewDriver("test")
42 err = d.setConfigFromFlagsImpl(makeFlags(map[string]interface{}{
43 flagUserData: inlineContents,
44 flagUserDataFile: file,
45 }))
46 assertMutualExclusion(t, err, flagUserData, flagUserDataFile)
47
48 // mutual exclusion data file <=> legacy flag
49 d = NewDriver("test")
50 err = d.setConfigFromFlagsImpl(&commandstest.FakeFlagger{
51 Data: map[string]interface{}{
52 legacyFlagUserDataFromFile: true,
53 flagUserDataFile: file,
54 },
55 })
56 assertMutualExclusion(t, err, legacyFlagUserDataFromFile, flagUserDataFile)
57
58 // inline user data
59 d = NewDriver("test")
60 err = d.setConfigFromFlagsImpl(makeFlags(map[string]interface{}{
61 flagUserData: inlineContents,
62 }))
63 if err != nil {
64 t.Fatalf("unexpected error, %v", err)
65 }
66
67 data, err := d.getUserData()
68 if err != nil {
69 t.Fatalf("unexpected error, %v", err)
70 }
71 if data != inlineContents {
72 t.Error("content did not match (inline)")
73 }
74
75 // file user data
76 d = NewDriver("test")
77 err = d.setConfigFromFlagsImpl(makeFlags(map[string]interface{}{
78 flagUserDataFile: file,
79 }))
80 if err != nil {
81 t.Fatalf("unexpected error, %v", err)
82 }
83
84 data, err = d.getUserData()
85 if err != nil {
86 t.Fatalf("unexpected error, %v", err)
87 }

Callers

nothing calls this directly

Calls 5

getUserDataMethod · 0.95
NewDriverFunction · 0.85
makeFlagsFunction · 0.85
assertMutualExclusionFunction · 0.85

Tested by

no test coverage detected