Use global test scraper with auth

This commit is contained in:
Alexander Sheiko 2023-07-03 15:06:56 +03:00
parent d34f982b0d
commit 5f380af184
3 changed files with 27 additions and 66 deletions

View file

@ -1,6 +1,7 @@
package twitterscraper_test package twitterscraper_test
import ( import (
"fmt"
"os" "os"
"testing" "testing"
@ -8,11 +9,21 @@ import (
) )
var ( var (
username = os.Getenv("TWITTER_USERNAME") username = os.Getenv("TWITTER_USERNAME")
password = os.Getenv("TWITTER_PASSWORD") password = os.Getenv("TWITTER_PASSWORD")
email = os.Getenv("TWITTER_EMAIL") email = os.Getenv("TWITTER_EMAIL")
testScraper = twitterscraper.New()
) )
func init() {
if username != "" && password != "" {
err := testScraper.Login(username, password, email)
if err != nil {
panic(fmt.Sprintf("Login() error = %v", err))
}
}
}
func TestAuth(t *testing.T) { func TestAuth(t *testing.T) {
if os.Getenv("SKIP_AUTH_TEST") != "" { if os.Getenv("SKIP_AUTH_TEST") != "" {
t.Skip("Skipping test due to environment variable") t.Skip("Skipping test due to environment variable")

View file

@ -12,18 +12,12 @@ func TestFetchSearchCursor(t *testing.T) {
if os.Getenv("SKIP_AUTH_TEST") != "" { if os.Getenv("SKIP_AUTH_TEST") != "" {
t.Skip("Skipping test due to environment variable") t.Skip("Skipping test due to environment variable")
} }
searchScraper := twitterscraper.New()
err := searchScraper.Login(username, password)
if err != nil {
t.Fatal(err)
}
defer searchScraper.Logout()
maxTweetsNbr := 150 maxTweetsNbr := 150
tweetsNbr := 0 tweetsNbr := 0
nextCursor := "" nextCursor := ""
for tweetsNbr < maxTweetsNbr { for tweetsNbr < maxTweetsNbr {
tweets, cursor, err := searchScraper.FetchSearchTweets("twitter", maxTweetsNbr, nextCursor) tweets, cursor, err := testScraper.FetchSearchTweets("twitter", maxTweetsNbr, nextCursor)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -42,15 +36,8 @@ func TestGetSearchProfiles(t *testing.T) {
count := 0 count := 0
maxProfilesNbr := 150 maxProfilesNbr := 150
dupcheck := make(map[string]bool) dupcheck := make(map[string]bool)
searchScraper := twitterscraper.New() testScraper.SetSearchMode(twitterscraper.SearchUsers)
err := searchScraper.Login(username, password) for profile := range testScraper.SearchProfiles(context.Background(), "Twitter", maxProfilesNbr) {
if err != nil {
t.Fatal(err)
}
defer searchScraper.Logout()
searchScraper.SetSearchMode(twitterscraper.SearchUsers)
for profile := range searchScraper.SearchProfiles(context.Background(), "Twitter", maxProfilesNbr) {
if profile.Error != nil { if profile.Error != nil {
t.Error(profile.Error) t.Error(profile.Error)
} else { } else {
@ -78,15 +65,8 @@ func TestGetSearchTweets(t *testing.T) {
count := 0 count := 0
maxTweetsNbr := 150 maxTweetsNbr := 150
dupcheck := make(map[string]bool) dupcheck := make(map[string]bool)
searchScraper := twitterscraper.New() testScraper.SetSearchMode(twitterscraper.SearchLatest)
err := searchScraper.Login(username, password) for tweet := range testScraper.SearchTweets(context.Background(), "twitter", maxTweetsNbr) {
if err != nil {
t.Fatal(err)
}
defer searchScraper.Logout()
searchScraper.SetSearchMode(twitterscraper.SearchLatest)
for tweet := range searchScraper.SearchTweets(context.Background(), "twitter", maxTweetsNbr) {
if tweet.Error != nil { if tweet.Error != nil {
t.Error(tweet.Error) t.Error(tweet.Error)
} else { } else {

View file

@ -77,12 +77,7 @@ func TestGetTweets(t *testing.T) {
} }
func assertGetTweet(t *testing.T, expectedTweet *twitterscraper.Tweet) { func assertGetTweet(t *testing.T, expectedTweet *twitterscraper.Tweet) {
scraper := twitterscraper.New() actualTweet, err := testScraper.GetTweet(expectedTweet.ID)
err := scraper.LoginOpenAccount()
if err != nil {
t.Fatalf("LoginOpenAccount() error = %v", err)
}
actualTweet, err := scraper.GetTweet(expectedTweet.ID)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} else if diff := cmp.Diff(expectedTweet, actualTweet, cmpOptions...); diff != "" { } else if diff := cmp.Diff(expectedTweet, actualTweet, cmpOptions...); diff != "" {
@ -192,12 +187,7 @@ func TestTweetMentions(t *testing.T) {
Username: "davidmcraney", Username: "davidmcraney",
Name: "David McRaney", Name: "David McRaney",
}} }}
scraper := twitterscraper.New() tweet, err := testScraper.GetTweet("1554522888904101890")
err := scraper.LoginOpenAccount()
if err != nil {
t.Fatalf("LoginOpenAccount() error = %v", err)
}
tweet, err := scraper.GetTweet("1554522888904101890")
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} else { } else {
@ -228,12 +218,7 @@ func TestQuotedAndReply(t *testing.T) {
UserID: "978944851", UserID: "978944851",
Username: "VsauceTwo", Username: "VsauceTwo",
} }
scraper := twitterscraper.New() tweet, err := testScraper.GetTweet("1237110897597976576")
err := scraper.LoginOpenAccount()
if err != nil {
t.Fatalf("LoginOpenAccount() error = %v", err)
}
tweet, err := scraper.GetTweet("1237110897597976576")
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} else { } else {
@ -244,7 +229,7 @@ func TestQuotedAndReply(t *testing.T) {
t.Error("Resulting quote does not match the sample", diff) t.Error("Resulting quote does not match the sample", diff)
} }
} }
tweet, err = scraper.GetTweet("1237111868445134850") tweet, err = testScraper.GetTweet("1237111868445134850")
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} else { } else {
@ -262,7 +247,7 @@ func TestRetweet(t *testing.T) {
ConversationID: "1359151057872580612", ConversationID: "1359151057872580612",
HTML: "Weve seen an increase in attacks against Asian communities and individuals around the world. Its important to know that this isnt new; throughout history, Asians have experienced violence and exclusion. However, their diverse lived experiences have largely been overlooked.", HTML: "Weve seen an increase in attacks against Asian communities and individuals around the world. Its important to know that this isnt new; throughout history, Asians have experienced violence and exclusion. However, their diverse lived experiences have largely been overlooked.",
ID: "1359151057872580612", ID: "1359151057872580612",
IsSelfThread: true, IsSelfThread: false,
Likes: 6683, Likes: 6683,
Name: "Twitter Together", Name: "Twitter Together",
PermanentURL: "https://twitter.com/TwitterTogether/status/1359151057872580612", PermanentURL: "https://twitter.com/TwitterTogether/status/1359151057872580612",
@ -274,12 +259,7 @@ func TestRetweet(t *testing.T) {
UserID: "773578328498372608", UserID: "773578328498372608",
Username: "TwitterTogether", Username: "TwitterTogether",
} }
scraper := twitterscraper.New() tweet, err := testScraper.GetTweet("1362849141248974853")
err := scraper.LoginOpenAccount()
if err != nil {
t.Fatalf("LoginOpenAccount() error = %v", err)
}
tweet, err := scraper.GetTweet("1362849141248974853")
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} else { } else {
@ -308,12 +288,7 @@ func TestTweetViews(t *testing.T) {
Username: "TwitterSupport", Username: "TwitterSupport",
Views: 3189278, Views: 3189278,
} }
scraper := twitterscraper.New() tweet, err := testScraper.GetTweet("1606055187348688896")
err := scraper.LoginOpenAccount()
if err != nil {
t.Fatalf("LoginOpenAccount() error = %v", err)
}
tweet, err := scraper.GetTweet("1606055187348688896")
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} else { } else {
@ -327,12 +302,7 @@ func TestTweetThread(t *testing.T) {
if os.Getenv("SKIP_AUTH_TEST") != "" { if os.Getenv("SKIP_AUTH_TEST") != "" {
t.Skip("Skipping test due to environment variable") t.Skip("Skipping test due to environment variable")
} }
scraper := twitterscraper.New() tweet, err := testScraper.GetTweet("1665602315745673217")
err := scraper.Login(username, password)
if err != nil {
t.Fatalf("Login() error = %v", err)
}
tweet, err := scraper.GetTweet("1665602315745673217")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} else { } else {