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