From 5f380af18423edc85dddebc1d4607281829d75ed Mon Sep 17 00:00:00 2001 From: Alexander Sheiko Date: Mon, 3 Jul 2023 15:06:56 +0300 Subject: [PATCH] Use global test scraper with auth --- auth_test.go | 17 ++++++++++++++--- search_test.go | 30 +++++------------------------- tweets_test.go | 46 ++++++++-------------------------------------- 3 files changed, 27 insertions(+), 66 deletions(-) diff --git a/auth_test.go b/auth_test.go index 1d15758..1c3680b 100644 --- a/auth_test.go +++ b/auth_test.go @@ -1,6 +1,7 @@ package twitterscraper_test import ( + "fmt" "os" "testing" @@ -8,11 +9,21 @@ import ( ) var ( - username = os.Getenv("TWITTER_USERNAME") - password = os.Getenv("TWITTER_PASSWORD") - email = os.Getenv("TWITTER_EMAIL") + username = os.Getenv("TWITTER_USERNAME") + password = os.Getenv("TWITTER_PASSWORD") + 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) { if os.Getenv("SKIP_AUTH_TEST") != "" { t.Skip("Skipping test due to environment variable") diff --git a/search_test.go b/search_test.go index 84050b1..b75eb01 100644 --- a/search_test.go +++ b/search_test.go @@ -12,18 +12,12 @@ func TestFetchSearchCursor(t *testing.T) { if os.Getenv("SKIP_AUTH_TEST") != "" { 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 tweetsNbr := 0 nextCursor := "" for tweetsNbr < maxTweetsNbr { - tweets, cursor, err := searchScraper.FetchSearchTweets("twitter", maxTweetsNbr, nextCursor) + tweets, cursor, err := testScraper.FetchSearchTweets("twitter", maxTweetsNbr, nextCursor) if err != nil { t.Fatal(err) } @@ -42,15 +36,8 @@ func TestGetSearchProfiles(t *testing.T) { count := 0 maxProfilesNbr := 150 dupcheck := make(map[string]bool) - searchScraper := twitterscraper.New() - err := searchScraper.Login(username, password) - if err != nil { - t.Fatal(err) - } - defer searchScraper.Logout() - - searchScraper.SetSearchMode(twitterscraper.SearchUsers) - for profile := range searchScraper.SearchProfiles(context.Background(), "Twitter", maxProfilesNbr) { + testScraper.SetSearchMode(twitterscraper.SearchUsers) + for profile := range testScraper.SearchProfiles(context.Background(), "Twitter", maxProfilesNbr) { if profile.Error != nil { t.Error(profile.Error) } else { @@ -78,15 +65,8 @@ func TestGetSearchTweets(t *testing.T) { count := 0 maxTweetsNbr := 150 dupcheck := make(map[string]bool) - searchScraper := twitterscraper.New() - err := searchScraper.Login(username, password) - if err != nil { - t.Fatal(err) - } - defer searchScraper.Logout() - - searchScraper.SetSearchMode(twitterscraper.SearchLatest) - for tweet := range searchScraper.SearchTweets(context.Background(), "twitter", maxTweetsNbr) { + testScraper.SetSearchMode(twitterscraper.SearchLatest) + for tweet := range testScraper.SearchTweets(context.Background(), "twitter", maxTweetsNbr) { if tweet.Error != nil { t.Error(tweet.Error) } else { diff --git a/tweets_test.go b/tweets_test.go index 4b583df..1c0df01 100644 --- a/tweets_test.go +++ b/tweets_test.go @@ -77,12 +77,7 @@ func TestGetTweets(t *testing.T) { } func assertGetTweet(t *testing.T, expectedTweet *twitterscraper.Tweet) { - scraper := twitterscraper.New() - err := scraper.LoginOpenAccount() - if err != nil { - t.Fatalf("LoginOpenAccount() error = %v", err) - } - actualTweet, err := scraper.GetTweet(expectedTweet.ID) + actualTweet, err := testScraper.GetTweet(expectedTweet.ID) if err != nil { t.Error(err) } else if diff := cmp.Diff(expectedTweet, actualTweet, cmpOptions...); diff != "" { @@ -192,12 +187,7 @@ func TestTweetMentions(t *testing.T) { Username: "davidmcraney", Name: "David McRaney", }} - scraper := twitterscraper.New() - err := scraper.LoginOpenAccount() - if err != nil { - t.Fatalf("LoginOpenAccount() error = %v", err) - } - tweet, err := scraper.GetTweet("1554522888904101890") + tweet, err := testScraper.GetTweet("1554522888904101890") if err != nil { t.Error(err) } else { @@ -228,12 +218,7 @@ func TestQuotedAndReply(t *testing.T) { UserID: "978944851", Username: "VsauceTwo", } - scraper := twitterscraper.New() - err := scraper.LoginOpenAccount() - if err != nil { - t.Fatalf("LoginOpenAccount() error = %v", err) - } - tweet, err := scraper.GetTweet("1237110897597976576") + tweet, err := testScraper.GetTweet("1237110897597976576") if err != nil { t.Error(err) } else { @@ -244,7 +229,7 @@ func TestQuotedAndReply(t *testing.T) { t.Error("Resulting quote does not match the sample", diff) } } - tweet, err = scraper.GetTweet("1237111868445134850") + tweet, err = testScraper.GetTweet("1237111868445134850") if err != nil { t.Error(err) } else { @@ -262,7 +247,7 @@ func TestRetweet(t *testing.T) { ConversationID: "1359151057872580612", HTML: "We’ve seen an increase in attacks against Asian communities and individuals around the world. It’s important to know that this isn’t new; throughout history, Asians have experienced violence and exclusion. However, their diverse lived experiences have largely been overlooked.", ID: "1359151057872580612", - IsSelfThread: true, + IsSelfThread: false, Likes: 6683, Name: "Twitter Together", PermanentURL: "https://twitter.com/TwitterTogether/status/1359151057872580612", @@ -274,12 +259,7 @@ func TestRetweet(t *testing.T) { UserID: "773578328498372608", Username: "TwitterTogether", } - scraper := twitterscraper.New() - err := scraper.LoginOpenAccount() - if err != nil { - t.Fatalf("LoginOpenAccount() error = %v", err) - } - tweet, err := scraper.GetTweet("1362849141248974853") + tweet, err := testScraper.GetTweet("1362849141248974853") if err != nil { t.Error(err) } else { @@ -308,12 +288,7 @@ func TestTweetViews(t *testing.T) { Username: "TwitterSupport", Views: 3189278, } - scraper := twitterscraper.New() - err := scraper.LoginOpenAccount() - if err != nil { - t.Fatalf("LoginOpenAccount() error = %v", err) - } - tweet, err := scraper.GetTweet("1606055187348688896") + tweet, err := testScraper.GetTweet("1606055187348688896") if err != nil { t.Error(err) } else { @@ -327,12 +302,7 @@ func TestTweetThread(t *testing.T) { if os.Getenv("SKIP_AUTH_TEST") != "" { t.Skip("Skipping test due to environment variable") } - scraper := twitterscraper.New() - err := scraper.Login(username, password) - if err != nil { - t.Fatalf("Login() error = %v", err) - } - tweet, err := scraper.GetTweet("1665602315745673217") + tweet, err := testScraper.GetTweet("1665602315745673217") if err != nil { t.Fatal(err) } else {