additional testing - corrected db interval queries

pull/10/head
Hunter Long 2018-07-02 22:49:57 -07:00
parent df6916400a
commit 87f493bf4e
5 changed files with 20 additions and 10 deletions

View File

@ -18,7 +18,7 @@ services:
env:
global:
- VERSION=0.28.7
- VERSION=0.28.8
- DB_HOST=localhost
- DB_USER=travis
- DB_PASS=

View File

@ -1,6 +1,6 @@
FROM alpine:latest
ENV VERSION=v0.28.7
ENV VERSION=v0.28.8
RUN apk --no-cache add libstdc++ ca-certificates
RUN wget -q https://github.com/hunterlong/statup/releases/download/$VERSION/statup-linux-alpine.tar.gz && \

View File

@ -129,12 +129,13 @@ func (s *Service) GraphData() string {
increment := "minute"
since := time.Now().Add(time.Hour*-12 + time.Minute*0 + time.Second*0)
// this function needs some work, asap
// group by interval sql query for postgres, mysql and sqlite
sql := fmt.Sprintf("SELECT date_trunc('%v', created_at), AVG(latency)*1000 AS value FROM hits WHERE service=%v AND created_at > '%v' GROUP BY 1 ORDER BY date_trunc ASC;", increment, s.Id, since.Format(time.RFC3339))
if dbServer == "mysql" {
sql = fmt.Sprintf("SELECT created_at, AVG(latency)*1000 AS VALUE FROM hits WHERE service=%v GROUP BY 1 ORDER BY created_at ASC;", s.Id)
sql = fmt.Sprintf("SELECT CONCAT(DATE(created_at), ' ', %v(created_at)) AS created_at, AVG(latency)*1000 AS value FROM hits WHERE service=%v AND DATE_FORMAT(created_at, 'Y-m-d H:i:s') BETWEEN DATE_FORMAT(NOW() - INTERVAL 12 HOUR, 'Y-m-d H:i:s') AND DATE_FORMAT(NOW(), 'Y-m-d H:i:s') GROUP BY created_at", increment, s.Id)
} else if dbServer == "sqlite" {
sql = fmt.Sprintf("SELECT created_at, AVG(latency)*1000 AS VALUE FROM hits WHERE service=%v GROUP BY 1 ORDER BY created_at ASC;", s.Id)
sql = fmt.Sprintf("SELECT created_at, AVG(latency)*1000 as value FROM hits WHERE service=%v AND created_at >= '%v' GROUP BY strftime('%%m', created_at)", s.Id, since.Format(time.RFC3339))
fmt.Println(sql)
}
dated, err := DbSession.Query(db.Raw(sql))

View File

@ -155,23 +155,25 @@ func TestExportCommand(t *testing.T) {
c.Run()
t.Log(c.Stdout())
assert.True(t, c.StdoutContains("Exporting Static 'index.html' page"))
assert.True(t, fileExists("index.html"))
}
func TestAssetsCommand(t *testing.T) {
t.SkipNow()
c := testcli.Command("statup", "assets")
c.Run()
t.Log(c.Stdout())
assert.True(t, c.StdoutContains("Statup v"))
assert.True(t, fileExists("assets/robots.txt"))
assert.True(t, fileExists("assets/js/main.js"))
assert.True(t, fileExists("assets/css/base.css"))
assert.True(t, fileExists("assets/scss/base.scss"))
assert.True(t, fileExists("assets/emails/failure.html"))
}
func RunMySQLMakeConfig(t *testing.T, db string) {
port := 5432
if db == "mysql" {
port = 3306
}
config := &core.DbConfig{
db,
os.Getenv("DB_HOST"),
@ -435,3 +437,10 @@ func RunSettingsHandler(t *testing.T) {
// //os.Remove("./statup.db")
// os.Remove("./config.yml")
//}
func fileExists(file string) bool {
if _, err := os.Stat(file); os.IsNotExist(err) {
return false
}
return true
}

View File

@ -22,7 +22,7 @@ func init() {
var err error
logFile, err = os.OpenFile("./statup.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
lg.Fatalf("error opening file: %v", err)
lg.Printf("ERROR opening file: %v", err)
}
ljLogger = &lumberjack.Logger{
Filename: "./statup.log",