blob: de5c5db21919148b0622c85e57f6457e7d006527 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
package suites
import (
"fmt"
"time"
log "github.com/sirupsen/logrus"
)
// Suite the definition of a suite.
type Suite struct {
SetUp func(tmpPath string) error
SetUpTimeout time.Duration
// Callback called when an error occur during setup phase.
OnSetupTimeout func() error
// Callback called when at least one test fail.
OnError func() error
TestTimeout time.Duration
TearDown func(tmpPath string) error
TearDownTimeout time.Duration
// A textual description of the suite purpose.
Description string
}
// Registry represent a registry of suite by name.
type Registry struct {
registry map[string]Suite
}
// GlobalRegistry a global registry used by Authelia tooling.
var GlobalRegistry *Registry
func init() {
GlobalRegistry = NewSuitesRegistry()
}
// NewSuitesRegistry create a suites registry.
func NewSuitesRegistry() *Registry {
return &Registry{make(map[string]Suite)}
}
// Register register a suite by name.
func (sr *Registry) Register(name string, suite Suite) {
if _, found := sr.registry[name]; found {
log.Fatal(fmt.Sprintf("Trying to register the suite %s multiple times", name))
}
sr.registry[name] = suite
}
// Get return a suite by name.
func (sr *Registry) Get(name string) Suite {
s, found := sr.registry[name]
if !found {
log.Fatal(fmt.Sprintf("The suite %s does not exist", name))
}
return s
}
// Suites list available suites.
func (sr *Registry) Suites() []string {
suites := make([]string, 0)
for k := range sr.registry {
suites = append(suites, k)
}
return suites
}
|