本文整理汇总了Golang中github.com/speedland/apps/server/lib.SetApiTokenForTest函数的典型用法代码示例。如果您正苦于以下问题:Golang SetApiTokenForTest函数的具体用法?Golang SetApiTokenForTest怎么用?Golang SetApiTokenForTest使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SetApiTokenForTest函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestUpdateApiToken
func TestUpdateApiToken(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
appCtx := apptest.NewAppContextFromTestServer(app, ts)
// prepare
d := lib.NewApiTokenDriver(appCtx)
tok, _ := d.Issue("token1")
d.Issue("token2")
util.WaitFor(func() bool {
c, _ := d.NewQuery().Count()
return c == 2
}, util.DefaultWaitForTimeout)
var tokUrl = fmt.Sprintf("/api/admin/api_tokens/%s/", tok.Key())
// Case 400
req := ts.PutForm(tokUrl, url.Values{
"desc": []string{"updated"},
"alert_on": []string{"-20"},
})
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.Routes())
assert.HttpStatus(400, res)
// Case 200
req = ts.PutForm(tokUrl, url.Values{
"desc": []string{"updated"},
"alert_on": []string{"30"},
})
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(200, res)
})
}
开发者ID:speedland,项目名称:apps,代码行数:35,代码来源:api_api_tokens_test.go
示例2: TestDeleteRecordApi
func TestDeleteRecordApi(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
d := NewRecordCacheDriver(TEST_APP_KEY, ts.Context, wcg.NewLogger(nil))
// create an empty cache
var got []tv.TvRecord
p := app.Api.Path("/records/")
req := ts.Get(p)
res := req.RouteTo(app.Routes())
assert.HttpStatus(200, res)
res.Json(&got)
assert.EqInt(0, len(got), "GET %s should return 2 TvRecord entities.")
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeTvRecord)), "GET %s should create RecordCacheTypeTvRecord cache", p)
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeIEpg)), "GET %s should create RecordCacheTypeIEpg cache", p)
// prepare
in_window := genTestRecord()
in_window.StartAt = d.today.Add(1 * time.Hour)
in_window.EndAt = d.today.Add(2 * time.Hour)
d.TvRecord.Save(in_window)
future := genTestRecord()
future.StartAt = d.today.Add(RECORD_TIME_WINDOW + 1*time.Hour)
future.EndAt = future.StartAt.Add(1 * time.Hour)
d.TvRecord.Save(future)
err := util.WaitFor(func() bool {
records, _ := d.TvRecord.NewQuery().Count()
return records == 2
}, util.DefaultWaitForTimeout)
assert.Nil(err, "Confirm TvRecord entities has been stored within a timeout window.")
// case 1: future
p = fmt.Sprintf("%s%s.json", app.Api.Path("/records/"), future.Key())
req = ts.Delete(p)
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(200, res)
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeTvRecord)), "POST %s should not invalidate RecordCacheTypeTvRecord cache (future record)", p)
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeIEpg)), "GET %s should not invalidate RecordCacheTypeIEpg cache (future record)", p)
// case 2: in recording window
p = fmt.Sprintf("%s%s.json", app.Api.Path("/records/"), in_window.Key())
req = ts.Delete(p)
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(200, res)
assert.Ok(!d.Cache.Exists(d.GetMcKey(RecordCacheTypeTvRecord)), "POST %s should invalidate RecordCacheTypeTvRecord cache (in_window record)", p)
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeIEpg)), "GET %s should not invalidate RecordCacheTypeIEpg cache (in_window record)", p)
})
}
开发者ID:speedland,项目名称:apps,代码行数:52,代码来源:api_record_test.go
示例3: TestUpdatePost
func TestUpdatePost(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
appCtx := apptest.NewAppContextFromTestServer(app.App, ts)
// TODO: fixture
// prepare
d := NewPostDriver(appCtx)
post1, _ := d.Save(&blog.Post{
Title: "test post1",
Content: "test content",
Tags: []string{},
IsDraft: false,
IsHidden: false,
PublishAt: time.Now(),
})
util.WaitFor(func() bool {
c, _ := d.NewQuery().Count()
return c == 1
}, util.DefaultWaitForTimeout)
// test
p := app.Api.Path(fmt.Sprintf("/posts/%s.json", post1.Id))
req := ts.PutForm(p, url.Values{
"title": []string{"updated: test post1"},
"content": []string{"updated: test content"},
"publish_at": []string{"2015-01-01T12:04:05Z"}, // ISO8601 format
})
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.Routes())
assert.HttpStatus(200, res)
assert.Nil(util.WaitFor(func() bool {
var p blog.Post
key := d.NewKey(post1.Id, 0, nil)
d.Get(key, &p)
return "updated: test post1" == p.Title
}, util.DefaultWaitForTimeout), "Confirm update")
// case 404 not found
p = app.Api.Path(fmt.Sprintf("/api/default/posts/%s.json", "not-found"))
req = ts.PutForm(p, url.Values{
"title": []string{"updated: test post1"},
"content": []string{"updated: test content"},
"publish_at": []string{"2015-01-01T12:04:05Z"}, // ISO8601 format
})
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(404, res)
})
}
开发者ID:speedland,项目名称:apps,代码行数:52,代码来源:api_post_test.go
示例4: TestCreateRecordApi
func TestCreateRecordApi(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
d := NewRecordCacheDriver(TEST_APP_KEY, ts.Context, wcg.NewLogger(nil))
// create an empty cache
var got []tv.TvRecord
p := app.Api.Path("/records/")
req := ts.Get(p)
res := req.RouteTo(app.Routes())
assert.HttpStatus(200, res)
res.Json(&got)
assert.EqInt(0, len(got), "GET %s should return 2 TvRecord entities.")
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeTvRecord)), "GET %s should create RecordCacheTypeTvRecord cache", p)
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeIEpg)), "GET %s should create RecordCacheTypeIEpg cache", p)
now := time.Now()
// case 1: future
req = ts.PostForm(p, url.Values{
"title": []string{"Title"},
"category": []string{"Category"},
"cid": []string{"27"},
"sid": []string{"hd"},
"start_at": []string{util.FormatDateTime(now.Add(RECORD_TIME_WINDOW + 24*time.Hour))},
"end_at": []string{util.FormatDateTime(now.Add(RECORD_TIME_WINDOW + 25*time.Hour))},
})
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(201, res)
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeTvRecord)), "POST %s should not invalidate RecordCacheTypeTvRecord cache (future record)", p)
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeIEpg)), "GET %s should not invalidate RecordCacheTypeIEpg cache (future record)", p)
// case 2: in recording window
req = ts.PostForm(p, url.Values{
"title": []string{"Title"},
"category": []string{"Category"},
"cid": []string{"27"},
"sid": []string{"hd"},
"start_at": []string{util.FormatDateTime(now)},
"end_at": []string{util.FormatDateTime(now.Add(1 * time.Hour))},
})
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(201, res)
assert.Ok(!d.Cache.Exists(d.GetMcKey(RecordCacheTypeTvRecord)), "POST %s should invalidate RecordCacheTypeTvRecord cache (in window)", p)
assert.Ok(d.Cache.Exists(d.GetMcKey(RecordCacheTypeIEpg)), "GET %s should not invalidate RecordCacheTypeIEpg cache (in window)", p)
})
}
开发者ID:speedland,项目名称:apps,代码行数:49,代码来源:api_record_test.go
示例5: TestApiCreateEvent_201
func TestApiCreateEvent_201(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
appCtx := apptest.NewAppContextFromTestServer(app.TestApp().App, ts)
d := NewEventDriver(appCtx)
var respJson map[string]interface{}
var e event.Event
p := app.TestApp().Api.Path("/events/")
req := ts.PostForm(p, url.Values{
"title": []string{"test tour title"},
"link": []string{"http://www.example.com/"},
"image_link": []string{"http://www.example.com/img.png"},
})
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.TestApp().Routes())
assert.HttpStatus(201, res)
err := util.WaitFor(func() bool {
c, _ := d.NewQuery().Count()
return c == 1
}, util.DefaultWaitForTimeout)
assert.Nil(err, "Confirm the show has been inserted within timeout window.")
res.Json(&respJson)
d.Load(respJson["id"].(string), &e)
assert.EqStr("test tour title", e.Title, "Title")
assert.EqStr("http://www.example.com/", e.Link, "Link")
assert.EqStr("http://www.example.com/img.png", e.ImageLink, "ImageLink")
})
}
开发者ID:speedland,项目名称:apps,代码行数:32,代码来源:api_event_test.go
示例6: TestDeleteAmebloContents
func TestDeleteAmebloContents(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
appCtx := apptest.NewAppContextFromTestServer(app.TestApp().App, ts)
// prepare
amUrl := "http://ameblo.jp/eriko--imai/entry-11980960390.html"
d := NewAmebloEntryDriver(appCtx)
t1 := time.Now()
ent := &ameblo.AmebloEntry{
Title: "切り替え〜る",
Owner: "今井絵理子",
Url: amUrl,
UpdatedAt: t1,
CrawledAt: time.Time{},
Content: "",
AmLikes: 5,
AmComments: 10,
}
err := updateIndexes(appCtx, []*ameblo.AmebloEntry{ent})
assert.Nil(err, "UpdateIndexes() should not return an error on creating an ameblo entry")
p := app.TestApp().Api.Path("/ameblo/contents/今井絵理子.json")
req := ts.Delete(p)
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.TestApp().Routes())
assert.HttpStatus(200, res)
// confirm the content updated.
var ent1 ameblo.AmebloEntry
err = d.Get(d.NewKey(amUrl, 0, nil), &ent1)
assert.Ok(ent1.CrawledAt.Equal(time.Time{}), "DELETE %s should delete the cralwing timestamp.", p)
})
}
开发者ID:speedland,项目名称:apps,代码行数:35,代码来源:api_test.go
示例7: TestApiCreateEvent_400
func TestApiCreateEvent_400(t *testing.T) {
var genParams = func(omitName string) url.Values {
params := url.Values{
"title": []string{"test tour title"},
"link": []string{"http://www.example.com/"},
"image_link": []string{"http://www.example.com/img.png"},
}
params.Del(omitName)
return params
}
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
test.DatastoreFixture(ts.Context, "./fixtures/TestApiCreateEventShow.json", nil)
p := app.TestApp().Api.Path("/events/")
var testOmitParams = []string{
"title", "link", "image_link",
}
for _, paramName := range testOmitParams {
req := ts.PostForm(p, genParams(paramName))
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.TestApp().Routes())
assert.HttpStatus(400, res)
}
})
}
开发者ID:speedland,项目名称:apps,代码行数:26,代码来源:api_event_test.go
示例8: TestApiUpdateEvent
func TestApiUpdateEvent(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
appCtx := apptest.NewAppContextFromTestServer(app.TestApp().App, ts)
test.DatastoreFixture(ts.Context, "./fixtures/TestApiUpdateEvent.json", nil)
d := NewEventDriver(appCtx)
var e event.Event
p := app.TestApp().Api.Path("/events/event1.json")
req := ts.PutForm(p, url.Values{
"title": []string{"Updated Title"},
"link": []string{"http://www.up.example.com/"},
"image_link": []string{"http://www.up.example.com/img.png"},
})
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.TestApp().Routes())
assert.HttpStatus(200, res)
err := util.WaitFor(func() bool {
d.Load("event1", &e)
return e.Title == "Updated Title"
}, util.DefaultWaitForTimeout)
assert.Nil(err, "Confirm the show has been inserted within timeout window.")
assert.EqStr("Updated Title", e.Title, "Title")
assert.EqStr("http://www.up.example.com/", e.Link, "Link")
assert.EqStr("http://www.up.example.com/img.png", e.ImageLink, "ImageLink")
})
}
开发者ID:speedland,项目名称:apps,代码行数:30,代码来源:api_event_test.go
示例9: TestAddKeywordApi
func TestAddKeywordApi(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
p := app.Api.Path("/keywords/")
req := ts.PostForm(p, url.Values{
"keyword": []string{"モーニング娘。'15"},
"category": []string{"モーニング娘。"},
"scope": []string{"1"},
})
lib.SetApiTokenForTest(req, lib.Admin)
var got map[string]interface{}
res := req.RouteTo(app.Routes())
res.Json(&got)
assert.HttpStatus(201, res)
assert.EqStr(
"http://localhost:8080/api/pt/keywords/モーニング娘。'15.json",
got["location"].(string),
"POST %s location",
p,
)
// Confirm cache invalidation
mc := memcache.NewDriver(ts.Context, wcg.NewLogger(nil))
assert.Ok(!mc.Exists(MC_KEY_KEYWORDS), "POST %s should invalidate the cache", p)
})
}
开发者ID:speedland,项目名称:apps,代码行数:27,代码来源:api_keywords_test.go
示例10: TestApiCreateEventShow_400
func TestApiCreateEventShow_400(t *testing.T) {
var genParams = func(omitName string) url.Values {
params := url.Values{
"open_at": []string{"2015-01-02T06:00:00Z"},
"start_at": []string{"2015-01-02T07:00:00Z"},
"latitude": []string{"37.39"},
"longitude": []string{"140.38"},
"venue_id": []string{"153237058036933"},
"venue_name": []string{"郡山市民文化センター"},
"pia_link": []string{"http://pia.jp/link"},
"ya_keyword": []string{"郡山"},
}
params.Del(omitName)
return params
}
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
test.DatastoreFixture(ts.Context, "./fixtures/TestApiCreateEventShow.json", nil)
p := app.TestApp().Api.Path("/events/event1/shows")
var testOmitParams = []string{
"open_at", "start_at", "latitude", "longitude", "venue_id", "venue_name", // "pia_link", "ya_keyword",
}
for _, paramName := range testOmitParams {
req := ts.PostForm(p, genParams(paramName))
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.TestApp().Routes())
assert.HttpStatus(400, res)
}
})
}
开发者ID:speedland,项目名称:apps,代码行数:31,代码来源:api_event_show_test.go
示例11: TestDelChannelApi
func TestDelChannelApi(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
// prepare
d := NewTvChannelDriver(TEST_APP_KEY, ts.Context, wcg.NewLogger(nil))
ent1 := &tv.TvChannel{"c1", "s1", "foo", "bar"}
ent2 := &tv.TvChannel{"c2", "s2", "hoge", "piyo"}
d.Put(d.NewKey(ent1.Key(), 0, nil), ent1)
d.Put(d.NewKey(ent2.Key(), 0, nil), ent2)
err := util.WaitFor(func() bool {
c, _ := d.NewQuery().Count()
return c == 2
}, util.DefaultWaitForTimeout)
assert.Nil(err, "Confirm TvChannel entities has been stored within a timeout window.")
p := app.Api.Path("/channels/c1/s1.json")
req := ts.Delete(p)
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.Routes())
assert.HttpStatus(200, res)
err = util.WaitFor(func() bool {
c, _ := d.NewQuery().Count()
return c == 1
}, util.DefaultWaitForTimeout)
assert.Nil(err, "DELETE %s Confirm TvChannel entities has been deleted via API within a timeout window.", p)
// Confirm cache invalidation
mc := memcache.NewDriver(ts.Context, wcg.NewLogger(nil))
assert.Ok(!mc.Exists(MC_KEY_CHANNELS), "DELETE %s should invalidate the cache", p)
})
}
开发者ID:speedland,项目名称:apps,代码行数:33,代码来源:api_channels_test.go
示例12: TestAddChannelApi
func TestAddChannelApi(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
p := app.Api.Path("/channels/")
req := ts.PostForm(p, url.Values{
"cid": []string{"c1"},
"sid": []string{"s1"},
"name": []string{"foo"},
"iepg_station_id": []string{"bar"},
})
lib.SetApiTokenForTest(req, lib.Admin)
var got map[string]interface{}
res := req.RouteTo(app.Routes())
res.Json(&got)
assert.HttpStatus(201, res)
assert.EqStr(
"http://localhost:8080/api/pt/channels/c1/s1.json",
got["location"].(string),
"POST %s location",
p,
)
// Confirm cache invalidation
mc := memcache.NewDriver(ts.Context, wcg.NewLogger(nil))
assert.Ok(!mc.Exists(MC_KEY_CHANNELS), "POST %s should invalidate the cache", p)
})
}
开发者ID:speedland,项目名称:apps,代码行数:28,代码来源:api_channels_test.go
示例13: TestCreatePost
func TestCreatePost(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
req := ts.PostForm("/api/default/posts/", url.Values{
"title": []string{"test title"},
"content": []string{"test content"},
"publish_at": []string{"2015-01-01T12:04:05Z"}, // ISO8601 format
})
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.Routes())
assert.HttpStatus(201, res)
// case 400: title missing
p := app.Api.Path("/posts/")
req = ts.PostForm(p, url.Values{
"content": []string{"test content"},
"publish_at": []string{"2015-01-01T12:04:05Z"}, // ISO8601 format
})
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(400, res)
// case 400: publish_at missing
req = ts.PostForm(p, url.Values{
"title": []string{"test title"},
"content": []string{"test content"},
})
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(400, res)
// case 400: publish_at missing (invalid format)
req = ts.PostForm(p, url.Values{
"title": []string{"test title"},
"content": []string{"test content"},
"publish_at": []string{"2015/01/01 12:04:05 +0900"}, // ISO8601 format
})
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(400, res)
})
}
开发者ID:speedland,项目名称:apps,代码行数:42,代码来源:api_post_test.go
示例14: TestApiCreateEventShow_404
func TestApiCreateEventShow_404(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
test.DatastoreFixture(ts.Context, "./fixtures/TestApiCreateEventShow.json", nil)
p := app.TestApp().Api.Path("/events/notexit/shows")
req := ts.PostForm(p, url.Values{})
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.TestApp().Routes())
assert.HttpStatus(404, res)
})
}
开发者ID:speedland,项目名称:apps,代码行数:11,代码来源:api_event_show_test.go
示例15: TestGetVersion
func TestGetVersion(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
var got interface{}
assert := test.NewAssert(t)
req := ts.Get("/api/admin/version/")
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.Routes())
res.Json(&got)
assert.HttpStatus(200, res)
})
}
开发者ID:speedland,项目名称:apps,代码行数:11,代码来源:api_version_test.go
示例16: TestGetPost
func TestGetPost(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
appCtx := apptest.NewAppContextFromTestServer(app.App, ts)
// TODO: fixture
// prepare
d := NewPostDriver(appCtx)
post1, _ := d.Save(&blog.Post{
Title: "test post1",
Content: "test content",
Tags: []string{},
IsDraft: false,
IsHidden: false,
PublishAt: time.Now(),
})
post2, _ := d.Save(&blog.Post{
Title: "test post2",
Content: "test content",
Tags: []string{},
IsDraft: true,
IsHidden: false,
PublishAt: time.Now(),
})
util.WaitFor(func() bool {
c, _ := d.NewQuery().Count()
return c == 1
}, util.DefaultWaitForTimeout)
// test post1 : public post
var got *blog.Post
p := app.Api.Path(fmt.Sprintf("/posts/%s.json", post1.Id))
req := ts.Get(p)
res := req.RouteTo(app.Routes())
res.Json(&got)
assert.HttpStatus(200, res)
assert.EqStr("test post1", got.Title, "post1.Title")
// test post2 : draft post, only visible by admins.
p = app.Api.Path(fmt.Sprintf("/posts/%s.json", post2.Id))
req = ts.Get(p)
res = req.RouteTo(app.Routes())
assert.HttpStatus(404, res)
req = ts.Get(p)
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
res.Json(&got)
assert.HttpStatus(200, res)
assert.EqStr("test post2", got.Title, "post2.Title")
})
}
开发者ID:speedland,项目名称:apps,代码行数:53,代码来源:api_post_test.go
示例17: TestDeletePost
func TestDeletePost(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
appCtx := apptest.NewAppContextFromTestServer(app.App, ts)
// TODO: fixture
// prepare
d := NewPostDriver(appCtx)
post1, _ := d.Save(&blog.Post{
Title: "test post1",
Content: "test content",
Tags: []string{},
IsDraft: false,
IsHidden: false,
PublishAt: time.Now(),
})
util.WaitFor(func() bool {
c, _ := d.NewQuery().Count()
return c == 1
}, util.DefaultWaitForTimeout)
// test
req := ts.Delete(fmt.Sprintf("/api/default/posts/%s.json", post1.Id))
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.Routes())
assert.HttpStatus(200, res)
assert.Nil(util.WaitFor(func() bool {
c, _ := d.NewQuery().Count()
return c == 0
}, util.DefaultWaitForTimeout), "Confirm deletion")
// case 200 not found even the post does not exist.
req = ts.Delete(fmt.Sprintf("/api/default/posts/%s.json", "not-found"))
lib.SetApiTokenForTest(req, lib.Admin)
res = req.RouteTo(app.Routes())
assert.HttpStatus(200, res)
})
}
开发者ID:speedland,项目名称:apps,代码行数:40,代码来源:api_post_test.go
示例18: TestAmebloIndexApi
func TestAmebloIndexApi(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
var got map[string][]string
p := app.TestApp().Api.Path("/ameblo/indexes/")
req := ts.Get(p)
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.TestApp().Routes())
res.Json(&got)
assert.HttpStatus(200, res)
assert.EqInt(2, len(got), "GET %s should return the list of crawled results.", p)
assert.EqInt(20, len(got["今井絵理子"]), "GET %s return 20 entries for '今井絵理子'.", p)
})
}
开发者ID:speedland,项目名称:apps,代码行数:14,代码来源:api_test.go
示例19: TestAmebloIndexAllApi
func TestAmebloIndexAllApi(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
var got []string
p := app.TestApp().Api.Path("/ameblo/indexes/今井絵理子.json")
req := ts.Get(p)
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.TestApp().Routes())
res.Json(&got)
assert.HttpStatus(200, res)
assert.Ok(
len(got) > 20,
"GET %s should return more thant 20 entries for '今井絵理子' but got %d.",
p, len(got))
})
}
开发者ID:speedland,项目名称:apps,代码行数:16,代码来源:api_test.go
示例20: TestAmebloCrawlContents
func TestAmebloCrawlContents(t *testing.T) {
test.RunTestServer(func(ts *test.TestServer) {
assert := test.NewAssert(t)
appCtx := apptest.NewAppContextFromTestServer(app.TestApp().App, ts)
// prepare
amUrl := "http://ameblo.jp/eriko--imai/entry-11980960390.html"
d := NewAmebloEntryDriver(appCtx)
refd := NewAmebloRefDriver(appCtx)
t1 := time.Now()
ent := &ameblo.AmebloEntry{
Title: "切り替え〜る",
Owner: "今井絵理子",
Url: amUrl,
UpdatedAt: t1,
CrawledAt: time.Time{},
Content: "",
AmLikes: 5,
AmComments: 10,
}
err := updateIndexes(appCtx, []*ameblo.AmebloEntry{ent})
assert.Nil(err, "UpdateIndexes() should not return an error on creating an ameblo entry")
err = util.WaitFor(func() bool {
c, _ := d.NewQuery().Count()
return c == 1
}, util.DefaultWaitForTimeout)
assert.Nil(err, "Confirm AmebloEntry has been indexed.")
p := app.TestApp().Api.Path("/ameblo/contents/")
req := ts.Get(p)
lib.SetApiTokenForTest(req, lib.Admin)
res := req.RouteTo(app.TestApp().Routes())
assert.HttpStatus(200, res)
// confirm the content updated.
var ent1 ameblo.AmebloEntry
err = d.Get(d.NewKey(amUrl, 0, nil), &ent1)
assert.Ok(len(ent1.Content) > 0, "GET %s should update the content", p)
// confirm the reference updated
c, _ := refd.NewQuery().Count()
assert.EqInt(1, c, "GET %s should update the content reference", p)
})
}
开发者ID:speedland,项目名称:apps,代码行数:45,代码来源:api_test.go
注:本文中的github.com/speedland/apps/server/lib.SetApiTokenForTest函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论