Commit 50951d87 authored by Matt Butcher's avatar Matt Butcher

Merge pull request #12 from technosophos/fix/test-dependencies

fix(tiller): set up Tiller environment correctly
parents 6563f55c b647e9a9
package environment package environment
import ( import (
"github.com/deis/tiller/pkg/engine"
"github.com/deis/tiller/pkg/hapi" "github.com/deis/tiller/pkg/hapi"
) )
const GoTplEngine = "gotpl"
var DefaultEngine = GoTplEngine
// EngineYard maps engine names to engine implementations. // EngineYard maps engine names to engine implementations.
type EngineYard map[string]Engine type EngineYard map[string]Engine
...@@ -12,6 +17,20 @@ func (y EngineYard) Get(k string) (Engine, bool) { ...@@ -12,6 +17,20 @@ func (y EngineYard) Get(k string) (Engine, bool) {
return e, ok return e, ok
} }
// Default returns the default template engine.
//
// The default is specified by DefaultEngine.
//
// If the default template engine cannot be found, this panics.
func (y EngineYard) Default() Engine {
d, ok := y[DefaultEngine]
if !ok {
// This is a developer error!
panic("Default template engine does not exist")
}
return d
}
// Engine represents a template engine that can render templates. // Engine represents a template engine that can render templates.
// //
// For some engines, "rendering" includes both compiling and executing. (Other // For some engines, "rendering" includes both compiling and executing. (Other
...@@ -55,5 +74,9 @@ type Environment struct { ...@@ -55,5 +74,9 @@ type Environment struct {
// New returns an environment initialized with the defaults. // New returns an environment initialized with the defaults.
func New() *Environment { func New() *Environment {
return &Environment{} e := engine.New()
var ey EngineYard = map[string]Engine{GoTplEngine: e}
return &Environment{
EngineYard: ey,
}
} }
package main
import (
"testing"
"github.com/deis/tiller/cmd/tiller/environment"
"github.com/deis/tiller/pkg/engine"
)
// These are canary tests to make sure that the default server actually
// fulfills its requirements.
var _ environment.Engine = &engine.Engine{}
func TestNewServer(t *testing.T) {
defer func() {
if recover() != nil {
t.Fatalf("Panic trapped. Check EngineYard.Default()")
}
}()
s := newServer()
// This will panic if it is not correct.
s.Environment.EngineYard.Default()
e, ok := s.Environment.EngineYard.Get(environment.GoTplEngine)
if !ok {
t.Fatalf("Could not find GoTplEngine")
}
if e == nil {
t.Fatalf("Template engine GoTplEngine returned nil.")
}
}
...@@ -4,12 +4,8 @@ import ( ...@@ -4,12 +4,8 @@ import (
"fmt" "fmt"
"sync" "sync"
"testing" "testing"
"github.com/deis/tiller/cmd/tiller/environment"
) )
var _ environment.Engine = &Engine{}
func TestEngine(t *testing.T) { func TestEngine(t *testing.T) {
e := New() e := New()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment