Refactor tweet_test: make a tweet loader helper function

This commit is contained in:
Alessio 2021-09-27 18:43:24 -07:00
parent 6aa14c32e2
commit 18722a6b1b

View File

@ -8,21 +8,26 @@ import (
"offline_twitter/scraper" "offline_twitter/scraper"
) )
func load_tweet_from_file(filename string) scraper.Tweet{
func TestParseSingleTweet(t *testing.T) { data, err := ioutil.ReadFile(filename)
data, err := ioutil.ReadFile("test_responses/single_tweets/tweet_with_unicode_chars.json")
if err != nil { if err != nil {
panic(err) panic(err)
} }
var apitweet scraper.APITweet var apitweet scraper.APITweet
err = json.Unmarshal(data, &apitweet) err = json.Unmarshal(data, &apitweet)
if err != nil { if err != nil {
t.Errorf(err.Error()) panic(err)
} }
tweet, err := scraper.ParseSingleTweet(apitweet) tweet, err := scraper.ParseSingleTweet(apitweet)
if err != nil { if err != nil {
t.Fatalf(err.Error()) panic(err)
} }
return tweet
}
func TestParseSingleTweet(t *testing.T) {
tweet := load_tweet_from_file("test_responses/single_tweets/tweet_with_unicode_chars.json")
expected_text := "The fact that @michaelmalice new book The Anarchist Handbook is just absolutely destroying on the charts is the largest white pill Ive swallowed in years." expected_text := "The fact that @michaelmalice new book The Anarchist Handbook is just absolutely destroying on the charts is the largest white pill Ive swallowed in years."
actual_text := tweet.Text actual_text := tweet.Text
@ -49,19 +54,7 @@ func TestParseSingleTweet(t *testing.T) {
} }
func TestParseTweetWithImage(t *testing.T) { func TestParseTweetWithImage(t *testing.T) {
data, err := ioutil.ReadFile("test_responses/single_tweets/tweet_with_image.json") tweet := load_tweet_from_file("test_responses/single_tweets/tweet_with_image.json")
if err != nil {
panic(err)
}
var apitweet scraper.APITweet
err = json.Unmarshal(data, &apitweet)
if err != nil {
t.Errorf(err.Error())
}
tweet, err := scraper.ParseSingleTweet(apitweet)
if err != nil {
t.Fatalf(err.Error())
}
expected_text := "this saddens me every time" expected_text := "this saddens me every time"
if tweet.Text != expected_text { if tweet.Text != expected_text {
@ -73,19 +66,7 @@ func TestParseTweetWithImage(t *testing.T) {
} }
func TestParseTweetWithQuotedTweetAsLink(t *testing.T) { func TestParseTweetWithQuotedTweetAsLink(t *testing.T) {
data, err := ioutil.ReadFile("test_responses/single_tweets/tweet_with_quoted_tweet_as_link2.json") tweet := load_tweet_from_file("test_responses/single_tweets/tweet_with_quoted_tweet_as_link2.json")
if err != nil {
panic(err)
}
var apitweet scraper.APITweet
err = json.Unmarshal(data, &apitweet)
if err != nil {
t.Errorf(err.Error())
}
tweet, err := scraper.ParseSingleTweet(apitweet)
if err != nil {
t.Errorf(err.Error())
}
expected_text := "sometimes they're too dimwitted to even get the wrong title right" expected_text := "sometimes they're too dimwitted to even get the wrong title right"
if tweet.Text != expected_text { if tweet.Text != expected_text {
@ -107,19 +88,8 @@ func TestParseTweetWithQuotedTweetAsLink(t *testing.T) {
} }
func TestParseTweetWithVideo(t *testing.T) { func TestParseTweetWithVideo(t *testing.T) {
data, err := ioutil.ReadFile("test_responses/single_tweets/tweet_with_video.json") tweet := load_tweet_from_file("test_responses/single_tweets/tweet_with_video.json")
if err != nil {
panic(err)
}
var apitweet scraper.APITweet
err = json.Unmarshal(data, &apitweet)
if err != nil {
t.Errorf(err.Error())
}
tweet, err := scraper.ParseSingleTweet(apitweet)
if err != nil {
t.Errorf(err.Error())
}
expected_video := "https://video.twimg.com/ext_tw_video/1418951950020845568/pu/vid/720x1280/sm4iL9_f8Lclh0aa.mp4?tag=12" expected_video := "https://video.twimg.com/ext_tw_video/1418951950020845568/pu/vid/720x1280/sm4iL9_f8Lclh0aa.mp4?tag=12"
if len(tweet.Videos) != 1 || tweet.Videos[0].RemoteURL != expected_video { if len(tweet.Videos) != 1 || tweet.Videos[0].RemoteURL != expected_video {
t.Errorf("Expected video URL %q, but got %+v", expected_video, tweet.Videos) t.Errorf("Expected video URL %q, but got %+v", expected_video, tweet.Videos)
@ -131,19 +101,7 @@ func TestParseTweetWithVideo(t *testing.T) {
} }
func TestParseTweetWithUrl(t *testing.T) { func TestParseTweetWithUrl(t *testing.T) {
data, err := ioutil.ReadFile("test_responses/single_tweets/tweet_with_url_card.json") tweet := load_tweet_from_file("test_responses/single_tweets/tweet_with_url_card.json")
if err != nil {
panic(err)
}
var apitweet scraper.APITweet
err = json.Unmarshal(data, &apitweet)
if err != nil {
t.Errorf(err.Error())
}
tweet, err := scraper.ParseSingleTweet(apitweet)
if err != nil {
t.Errorf(err.Error())
}
if len(tweet.Urls) != 1 { if len(tweet.Urls) != 1 {
t.Errorf("Expected %d urls, but got %d", 1, len(tweet.Urls)) t.Errorf("Expected %d urls, but got %d", 1, len(tweet.Urls))
@ -163,19 +121,7 @@ func TestParseTweetWithUrl(t *testing.T) {
} }
func TestParseTweetWithUrlButNoCard(t *testing.T) { func TestParseTweetWithUrlButNoCard(t *testing.T) {
data, err := ioutil.ReadFile("test_responses/single_tweets/tweet_with_url_but_no_card.json") tweet := load_tweet_from_file("test_responses/single_tweets/tweet_with_url_but_no_card.json")
if err != nil {
panic(err)
}
var apitweet scraper.APITweet
err = json.Unmarshal(data, &apitweet)
if err != nil {
t.Errorf(err.Error())
}
tweet, err := scraper.ParseSingleTweet(apitweet)
if err != nil {
t.Errorf(err.Error())
}
if len(tweet.Urls) != 1 { if len(tweet.Urls) != 1 {
t.Errorf("Expected %d urls, but got %d", 1, len(tweet.Urls)) t.Errorf("Expected %d urls, but got %d", 1, len(tweet.Urls))
@ -191,19 +137,7 @@ func TestParseTweetWithUrlButNoCard(t *testing.T) {
} }
func TestParseTweetWithMultipleUrls(t *testing.T) { func TestParseTweetWithMultipleUrls(t *testing.T) {
data, err := ioutil.ReadFile("test_responses/single_tweets/tweet_with_multiple_urls.json") tweet := load_tweet_from_file("test_responses/single_tweets/tweet_with_multiple_urls.json")
if err != nil {
panic(err)
}
var apitweet scraper.APITweet
err = json.Unmarshal(data, &apitweet)
if err != nil {
t.Errorf(err.Error())
}
tweet, err := scraper.ParseSingleTweet(apitweet)
if err != nil {
t.Errorf(err.Error())
}
if len(tweet.Urls) != 3 { if len(tweet.Urls) != 3 {
t.Errorf("Expected %d urls, got %d instead", 3, len(tweet.Urls)) t.Errorf("Expected %d urls, got %d instead", 3, len(tweet.Urls))
@ -224,19 +158,7 @@ func TestParseTweetWithMultipleUrls(t *testing.T) {
} }
func TestTweetWithLotsOfReplyMentions(t *testing.T) { func TestTweetWithLotsOfReplyMentions(t *testing.T) {
data, err := ioutil.ReadFile("test_responses/single_tweets/tweet_with_at_mentions_in_front.json") tweet := load_tweet_from_file("test_responses/single_tweets/tweet_with_at_mentions_in_front.json")
if err != nil {
panic(err)
}
var apitweet scraper.APITweet
err = json.Unmarshal(data, &apitweet)
if err != nil {
t.Errorf(err.Error())
}
tweet, err := scraper.ParseSingleTweet(apitweet)
if err != nil {
t.Errorf(err.Error())
}
if len(tweet.ReplyMentions) != 4 { if len(tweet.ReplyMentions) != 4 {
t.Errorf("Expected %d reply-mentions, got %d", 4, len(tweet.ReplyMentions)) t.Errorf("Expected %d reply-mentions, got %d", 4, len(tweet.ReplyMentions))