package migrator import ( "os" "strings" "testing" "time" "github.com/coreos/bbolt" "github.com/stretchr/testify/require" "github.com/umputun/remark/app/store" "github.com/umputun/remark/app/store/engine" "github.com/umputun/remark/app/store/service" "github.com/stretchr/testify/assert" ) func TestDisqus_Import(t *testing.T) { defer os.Remove("/tmp/remark-test.db") b, err := engine.NewBoltDB(bolt.Options{}, engine.BoltSite{FileName: "/tmp/remark-test.db", SiteID: "test"}) require.Nil(t, err, "create store") dataStore := service.DataStore{Interface: b} d := Disqus{DataStore: &dataStore} size, err := d.Import(strings.NewReader(xmlTest), "test") assert.Nil(t, err) assert.Equal(t, 3, size) last, err := dataStore.Last("test", 10) assert.Nil(t, err) assert.Equal(t, 3, len(last), "3 comments imported") c := last[0] assert.True(t, strings.HasPrefix(c.Text, "

Google App Engine")) assert.Equal(t, "299986072", c.ID) assert.Equal(t, "", c.ParentID) assert.Equal(t, store.Locator{SiteID: "test", URL: "http://radio-t.umputun.com/2011/03/229_8880.html"}, c.Locator) assert.Equal(t, "Dmitry Noname", c.User.Name) assert.Equal(t, "disqus_8799342cdf328253e03313958ffc6a433659d7ff", c.User.ID) assert.Equal(t, "96243f024cf6ad42b66f0c72709ae20b5d10ec14", c.User.IP) posts, err := dataStore.List("test", 0, 0) assert.Nil(t, err) assert.Equal(t, 2, len(posts), "2 posts") count, err := dataStore.Count(store.Locator{SiteID: "test", URL: "https://radio-t.com/p/2011/03/05/podcast-229/"}) assert.Nil(t, err) assert.Equal(t, 2, count) } func TestDisqus_Convert(t *testing.T) { d := Disqus{} ch := d.convert(strings.NewReader(xmlTest), "test") res := []store.Comment{} for comment := range ch { res = append(res, comment) } assert.Equal(t, 3, len(res), "3 comments total, 1 spam excluded") exp0 := store.Comment{ ID: "299619020", Locator: store.Locator{ SiteID: "test", URL: "https://radio-t.com/p/2011/03/05/podcast-229/", }, Text: `

The quick brown fox jumps over the lazy dog.

some link

`, User: store.User{ Name: "Alexander Blah", ID: "disqus_328c8b68974aef73785f6b38c3d3fedfdf941434", IP: "178.178.178.178", }, } exp0.Timestamp, _ = time.Parse("2006-01-02T15:04:05Z", "2011-08-31T15:16:29Z") assert.Equal(t, exp0, res[0]) } var xmlTest = ` radiot General true radiot http://radio-t.umputun.com/2011/03/229_8880.html Радио-Т: Радио-Т 229 2011-03-07T20:46:25Z umputun@gmail.com Umputun false umputun 98.212.28.115 false false http://www.radio-t.com/p/2011/03/05/podcast-229/ radiot https://radio-t.com/p/2011/03/05/podcast-229/ Радио-Т: Радио-Т 229 2011-03-07T21:17:17Z umputun@gmail.com Umputun false umputun 80.250.214.235 true false 3565798471341011339 The quick brown fox jumps over the lazy dog.

some link

]]>
2011-08-31T15:16:29Z false false Alexander Blah false facebook-1787732238 178.178.178.178
3029154520436241933 Microsoft показал проводник Windows 8 с ленточным интерфейсом.

http://blogs.msdn.com/b/b8/... 

]]>
2011-08-31T17:44:22Z false false mihail.noname@gmail.com mikhail false mikhail-noname 195.195.195.139
6580890074280459209 Google App Engine скоро выходит из превью статуса.

Сейчас письмо пришло от гугла.

Для платных приложений использущих High Replication Datastore (HRD) будет 99.95% uptime SLA.
Будут Премьер аккаунты за 500 баксов/месяц с оперативной поддержкой и любым количеством приложений на аккаунте (+ плата за потребленные ресурсы).
В связи с переходом на новую систему оплаты, обещают снизить бесплатные квоты.
Всем кто включит биллинг до 31 октября, обещают 50 баксов :)

]]>
2011-08-31T22:48:43Z false false dmitri.noname@gmail.com Dmitry Noname false google-74b9e7568ef6860e93862c5d77590123 89.89.89.139
6580890074280459219 some ugly spam 2011-09-30T22:48:43Z false true spam.noname@gmail.com Spam Noname false google-2c5d77590123 189.89.89.139
`