mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 21:56:50 -04:00
Fixed broken tests.
This commit is contained in:
@@ -95,7 +95,7 @@ func AllianceStationDisplayWebsocketHandler(w http.ResponseWriter, r *http.Reque
|
||||
data = struct {
|
||||
AllianceStation string
|
||||
Teams map[string]*Team
|
||||
Rankings map[string]*Ranking
|
||||
Rankings map[string]*Ranking
|
||||
}{station, map[string]*Team{"R1": mainArena.AllianceStations["R1"].team,
|
||||
"R2": mainArena.AllianceStations["R2"].team, "R3": mainArena.AllianceStations["R3"].team,
|
||||
"B1": mainArena.AllianceStations["B1"].team, "B2": mainArena.AllianceStations["B2"].team,
|
||||
@@ -143,7 +143,7 @@ func AllianceStationDisplayWebsocketHandler(w http.ResponseWriter, r *http.Reque
|
||||
message = struct {
|
||||
AllianceStation string
|
||||
Teams map[string]*Team
|
||||
Rankings map[string]*Ranking
|
||||
Rankings map[string]*Ranking
|
||||
}{station, map[string]*Team{"R1": mainArena.AllianceStations["R1"].team,
|
||||
"R2": mainArena.AllianceStations["R2"].team, "R3": mainArena.AllianceStations["R3"].team,
|
||||
"B1": mainArena.AllianceStations["B1"].team, "B2": mainArena.AllianceStations["B2"].team,
|
||||
|
||||
@@ -113,16 +113,13 @@ func TestRefereeDisplayWebsocket(t *testing.T) {
|
||||
mainArena.MatchState = POST_MATCH
|
||||
ws.Write("signalReset", nil)
|
||||
time.Sleep(time.Millisecond * 10)
|
||||
assert.True(t, mainArena.redRealtimeScore.FieldReset)
|
||||
assert.True(t, mainArena.blueRealtimeScore.FieldReset)
|
||||
assert.Equal(t, "fieldReset", mainArena.allianceStationDisplayScreen)
|
||||
assert.False(t, mainArena.redRealtimeScore.FoulsCommitted)
|
||||
assert.False(t, mainArena.blueRealtimeScore.FoulsCommitted)
|
||||
mainArena.redRealtimeScore.FieldReset = false
|
||||
mainArena.blueRealtimeScore.FieldReset = false
|
||||
mainArena.allianceStationDisplayScreen = "logo"
|
||||
ws.Write("commitMatch", nil)
|
||||
readWebsocketType(t, ws, "reload")
|
||||
assert.True(t, mainArena.redRealtimeScore.FieldReset)
|
||||
assert.True(t, mainArena.blueRealtimeScore.FieldReset)
|
||||
assert.Equal(t, "fieldReset", mainArena.allianceStationDisplayScreen)
|
||||
assert.True(t, mainArena.redRealtimeScore.FoulsCommitted)
|
||||
assert.True(t, mainArena.blueRealtimeScore.FoulsCommitted)
|
||||
|
||||
|
||||
@@ -19,8 +19,6 @@ import (
|
||||
|
||||
const wpaKeyLength = 8
|
||||
|
||||
var officialTeamInfoUrl = "http://www.thebluealliance.com/api/v2/team/"
|
||||
|
||||
// Shows the team list.
|
||||
func TeamsGetHandler(w http.ResponseWriter, r *http.Request) {
|
||||
renderTeams(w, r, false)
|
||||
@@ -236,7 +234,10 @@ func getOfficialTeamInfo(teamId int) (*Team, error) {
|
||||
|
||||
// If team info download is enabled, download the current teams data (caching isn't easy with the new paging system in the api)
|
||||
if eventSettings.TBADownloadEnabled {
|
||||
var tbaTeam *TbaTeam = getTeamFromTba(teamId)
|
||||
tbaTeam, err := getTeamFromTba(teamId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Check if the result is valid. If a team is not found, just return a basic team
|
||||
if tbaTeam == nil {
|
||||
@@ -246,7 +247,10 @@ func getOfficialTeamInfo(teamId int) (*Team, error) {
|
||||
|
||||
var recentAwards []TbaAward
|
||||
if eventSettings.TBAAwardsDownloadEnabled {
|
||||
recentAwards = getTeamAwardsFromTba(teamId)
|
||||
recentAwards, err = getTeamAwardsFromTba(teamId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
var accomplishmentsBuffer bytes.Buffer
|
||||
|
||||
@@ -26,14 +26,53 @@ func TestSetupTeams(t *testing.T) {
|
||||
assert.Contains(t, recorder.Body.String(), "0 teams")
|
||||
|
||||
// Mock the URL to download team info from.
|
||||
teamInfoBody := "<PRE>\nID_team\tteam_number\tteam_name\tteam_name_short\tteam_city\tteam_stateprov\t" +
|
||||
"team_country\tteam_nickname team_rookieyear robot_name\n1\t254\tNASA\tChezy\tThe Cheesy Poofs\t" +
|
||||
"San Jose\tCA\tUSA\t1999\tBarrage\n</PRE>"
|
||||
teamInfoBody := `{
|
||||
"website": "http://www.team254.com",
|
||||
"name": "NASA Ames Research Center",
|
||||
"locality": "San Jose",
|
||||
"rookie_year": 1999,
|
||||
"region": "CA",
|
||||
"team_number": 254,
|
||||
"location": "San Jose, CA, USA",
|
||||
"key": "frc254",
|
||||
"country_name": "USA",
|
||||
"nickname": "The Cheesy Poofs"
|
||||
}`
|
||||
teamInfoServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprintln(w, teamInfoBody)
|
||||
}))
|
||||
defer teamInfoServer.Close()
|
||||
officialTeamInfoUrl = teamInfoServer.URL
|
||||
tbaTeamBaseUrl = teamInfoServer.URL
|
||||
|
||||
teamAwardsBody := `[{
|
||||
"event_key": "2014cmp",
|
||||
"award_type": 1,
|
||||
"name": "Championship Winners",
|
||||
"recipient_list": [
|
||||
{
|
||||
"team_number": 254,
|
||||
"awardee": null
|
||||
},
|
||||
{
|
||||
"team_number": 2848,
|
||||
"awardee": null
|
||||
},
|
||||
{
|
||||
"team_number": 469,
|
||||
"awardee": null
|
||||
},
|
||||
{
|
||||
"team_number": 74,
|
||||
"awardee": null
|
||||
}
|
||||
],
|
||||
"year": 2014
|
||||
}]`
|
||||
teamAwardsServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprintln(w, teamAwardsBody)
|
||||
}))
|
||||
defer teamAwardsServer.Close()
|
||||
tbaTeamAwardsBaseUrl = teamAwardsServer.URL
|
||||
|
||||
// Add some teams.
|
||||
recorder = postHttpResponse("/setup/teams", "teamNumbers=254\r\nnotateam\r\n1114\r\n")
|
||||
|
||||
39
tba.go
39
tba.go
@@ -15,7 +15,10 @@ import (
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// Distinct endpoints are necessary for testing.
|
||||
var tbaBaseUrl = "http://www.thebluealliance.com"
|
||||
var tbaTeamBaseUrl = tbaBaseUrl
|
||||
var tbaTeamAwardsBaseUrl = tbaBaseUrl
|
||||
|
||||
// MODELS
|
||||
|
||||
@@ -71,38 +74,44 @@ type TbaAward struct {
|
||||
}
|
||||
|
||||
// DATA RETRIEVAL
|
||||
func getTeamFromTba(teamNumber int) *TbaTeam {
|
||||
url := fmt.Sprint("/api/v2/team/", string(getTbaTeam(teamNumber)))
|
||||
resp, _ := getTbaRequest(url)
|
||||
func getTeamFromTba(teamNumber int) (*TbaTeam, error) {
|
||||
url := fmt.Sprintf("%s/api/v2/team/%s", tbaTeamBaseUrl, getTbaTeam(teamNumber))
|
||||
resp, err := getTbaRequest(url)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Get the response and handle errors
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var teamData TbaTeam
|
||||
json.Unmarshal(body, &teamData)
|
||||
err = json.Unmarshal(body, &teamData)
|
||||
|
||||
return &teamData
|
||||
return &teamData, err
|
||||
}
|
||||
|
||||
func getTeamAwardsFromTba(teamNumber int) []TbaAward {
|
||||
url := fmt.Sprint("/api/v2/team/", string(getTbaTeam(teamNumber)), "/history/awards")
|
||||
resp, _ := getTbaRequest(url)
|
||||
func getTeamAwardsFromTba(teamNumber int) ([]TbaAward, error) {
|
||||
url := fmt.Sprintf("%s/api/v2/team/%s/history/awards", tbaTeamAwardsBaseUrl, getTbaTeam(teamNumber))
|
||||
resp, err := getTbaRequest(url)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Get the response and handle errors
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var awardData []TbaAward
|
||||
json.Unmarshal(body, &awardData)
|
||||
err = json.Unmarshal(body, &awardData)
|
||||
|
||||
return awardData
|
||||
return awardData, err
|
||||
}
|
||||
|
||||
// PUBLISHING
|
||||
@@ -212,7 +221,7 @@ func PublishRankings() error {
|
||||
}
|
||||
|
||||
// Build a JSON object of TBA-format rankings.
|
||||
breakdowns := []string{"QS", "Assist", "Auto", "T&C", "G&F", "wins", "losses", "ties"}
|
||||
breakdowns := []string{"QA", "Coopertition", "Auto", "Container", "Tote", "Litter"}
|
||||
tbaRankings := make([]TbaRanking, len(rankings))
|
||||
for i, ranking := range rankings {
|
||||
tbaRankings[i] = TbaRanking{getTbaTeam(ranking.TeamId), ranking.Rank, ranking.QualificationAverage,
|
||||
@@ -290,10 +299,10 @@ func postTbaRequest(resource string, body []byte) (*http.Response, error) {
|
||||
}
|
||||
|
||||
// Sends a GET request to the TBA API
|
||||
func getTbaRequest(path string) (*http.Response, error) {
|
||||
func getTbaRequest(url string) (*http.Response, error) {
|
||||
// Make an HTTP GET request with the TBA auth headers
|
||||
client := &http.Client{}
|
||||
req, err := http.NewRequest("GET", fmt.Sprint(tbaBaseUrl, path), nil)
|
||||
req, err := http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user