Skip to content

Commit 6239455

Browse files
authored
Merge pull request #1170 from hotate29/tweak
Tweak
2 parents 58aed3e + 8c001f4 commit 6239455

27 files changed

+88
-342
lines changed

atcoder-problems-backend/Cargo.lock

Lines changed: 0 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

atcoder-problems-backend/atcoder-client/Cargo.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ publish = false
77

88
[dependencies]
99
reqwest = { version = "0.11", features = ["json", "gzip"] }
10-
scraper = "0.12"
10+
scraper = { version = "0.12", default-features = false }
1111
chrono = "0.4"
1212
regex = "1"
1313
serde = { version = "1.0", features = ["derive"] }
1414
serde_json = "1.0"
15-
tokio = { version = "1.16", features = ["macros", "rt"] }
1615
anyhow = "1.0"
1716
log = "0.4"
17+
18+
[dev-dependencies]
19+
tokio = { version = "1.16", default-features = false, features = ["macros"] }

atcoder-problems-backend/atcoder-client/src/atcoder/client.rs

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -89,51 +89,51 @@ impl AtCoderClient {
8989
mod tests {
9090
use super::*;
9191

92-
#[test]
93-
fn test_fetch_contest_list() {
92+
#[tokio::test]
93+
async fn test_fetch_contest_list() {
9494
let client = AtCoderClient::default();
95-
let rt = tokio::runtime::Runtime::new().unwrap();
96-
let contests = rt
97-
.block_on(client.fetch_atcoder_contests(ContestTypeSpecifier::Normal { page: 1 }))
95+
let contests = client
96+
.fetch_atcoder_contests(ContestTypeSpecifier::Normal { page: 1 })
97+
.await
9898
.unwrap();
9999
assert_eq!(contests.len(), 50);
100100
}
101101

102-
#[test]
103-
fn test_fetch_hidden_contest() {
102+
#[tokio::test]
103+
async fn test_fetch_hidden_contest() {
104104
let client = AtCoderClient::default();
105-
let rt = tokio::runtime::Runtime::new().unwrap();
106-
let contests = rt
107-
.block_on(client.fetch_atcoder_contests(ContestTypeSpecifier::Hidden))
105+
let contests = client
106+
.fetch_atcoder_contests(ContestTypeSpecifier::Hidden)
107+
.await
108108
.unwrap();
109109
assert!(!contests.is_empty());
110110
}
111111

112-
#[test]
113-
fn test_fetch_problem_list() {
112+
#[tokio::test]
113+
async fn test_fetch_problem_list() {
114114
let client = AtCoderClient::default();
115-
let rt = tokio::runtime::Runtime::new().unwrap();
116-
let problems = rt.block_on(client.fetch_problem_list("abc107")).unwrap();
115+
let problems = client.fetch_problem_list("abc107").await.unwrap();
117116
assert_eq!(problems.len(), 4);
118117
}
119118

120-
#[test]
121-
fn test_fetch_submission_list() {
119+
#[tokio::test]
120+
async fn test_fetch_submission_list() {
122121
let client = AtCoderClient::default();
123-
let rt = tokio::runtime::Runtime::new().unwrap();
124-
let response = rt
125-
.block_on(client.fetch_atcoder_submission_list("xmascon17", None))
122+
let response = client
123+
.fetch_atcoder_submission_list("xmascon17", None)
124+
.await
126125
.unwrap();
127126
assert_eq!(response.submissions.len(), 20);
128127

129-
let response = rt
130-
.block_on(client.fetch_atcoder_submission_list("xmascon17", Some(response.max_page)))
128+
let response = client
129+
.fetch_atcoder_submission_list("xmascon17", Some(response.max_page))
130+
.await
131131
.unwrap();
132132
assert!(!response.submissions.is_empty());
133133

134-
let response = rt.block_on(
135-
client.fetch_atcoder_submission_list("xmascon17", Some(response.max_page + 1)),
136-
);
134+
let response = client
135+
.fetch_atcoder_submission_list("xmascon17", Some(response.max_page + 1))
136+
.await;
137137
assert!(response.is_err());
138138
}
139139
}

atcoder-problems-backend/atcoder-client/src/atcoder/contest.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -126,26 +126,20 @@ pub(super) fn scrape_permanent(html: &str) -> Result<Vec<AtCoderContest>> {
126126
#[cfg(test)]
127127
mod tests {
128128
use super::*;
129-
use std::fs::File;
130-
use std::io::Read;
131129

132130
#[test]
133131
fn test_scrape_normal() {
134-
let mut file = File::open("test_resources/contests_normal").unwrap();
135-
let mut contents = String::new();
136-
file.read_to_string(&mut contents).unwrap();
132+
let contents = include_str!("../../test_resources/contests_normal");
137133

138-
let contests = scrape_normal(&contents).unwrap();
134+
let contests = scrape_normal(contents).unwrap();
139135
assert_eq!(contests.len(), 50);
140136
}
141137

142138
#[test]
143139
fn test_scrape_permanent() {
144-
let mut file = File::open("test_resources/contests_permanent").unwrap();
145-
let mut contents = String::new();
146-
file.read_to_string(&mut contents).unwrap();
140+
let contents = include_str!("../../test_resources/contests_permanent");
147141

148-
let contests = scrape_permanent(&contents).unwrap();
142+
let contests = scrape_permanent(contents).unwrap();
149143
assert_eq!(contests.len(), 4);
150144
}
151145
}

atcoder-problems-backend/atcoder-client/src/atcoder/problem.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,11 @@ pub(super) fn scrape(html: &str, contest_id: &str) -> Result<Vec<AtCoderProblem>
5050
#[cfg(test)]
5151
mod tests {
5252
use super::*;
53-
use std::fs::File;
54-
use std::io::prelude::*;
5553

5654
#[test]
5755
fn test_scrape() {
58-
let mut file = File::open("test_resources/abc107_tasks").unwrap();
59-
let mut contents = String::new();
60-
file.read_to_string(&mut contents).unwrap();
61-
let problems = scrape(&contents, "abc107").unwrap();
56+
let contents = include_str!("../../test_resources/abc107_tasks");
57+
let problems = scrape(contents, "abc107").unwrap();
6258
assert_eq!(
6359
problems,
6460
vec![
@@ -92,10 +88,8 @@ mod tests {
9288

9389
#[test]
9490
fn test_scrape_atc002() {
95-
let mut file = File::open("test_resources/atc002_tasks").unwrap();
96-
let mut contents = String::new();
97-
file.read_to_string(&mut contents).unwrap();
98-
let problems = scrape(&contents, "atc002").unwrap();
91+
let contents = include_str!("../../test_resources/atc002_tasks");
92+
let problems = scrape(contents, "atc002").unwrap();
9993
assert_eq!(
10094
problems,
10195
vec![

atcoder-problems-backend/atcoder-client/src/atcoder/submission.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,19 +143,15 @@ pub(super) fn scrape(html_text: &str, contest_id: &str) -> Result<Vec<AtCoderSub
143143
#[cfg(test)]
144144
mod tests {
145145
use super::*;
146-
use std::fs::File;
147-
use std::io::prelude::*;
148146

149147
#[test]
150148
fn test_scrape() {
151-
let mut file = File::open("test_resources/abc107_submissions").unwrap();
152-
let mut contents = String::new();
153-
file.read_to_string(&mut contents).unwrap();
154-
let submissions = scrape(&contents, "abc107").unwrap();
149+
let contents = include_str!("../../test_resources/abc107_submissions");
150+
let submissions = scrape(contents, "abc107").unwrap();
155151
assert_eq!(submissions.len(), 20);
156152
assert!(submissions.iter().all(|s| s.user_id.is_ascii()));
157153

158-
let max_page = scrape_submission_page_count(&contents).unwrap();
154+
let max_page = scrape_submission_page_count(contents).unwrap();
159155
assert_eq!(max_page, 2208);
160156
}
161157
}

atcoder-problems-backend/atcoder-client/src/atcoder/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ mod tests {
6464
contest_id: "arc102".to_string(),
6565
};
6666
assert_eq!(
67-
"https://atcoder.jp/contests/arc102/tasks/arc102_c".to_string(),
67+
"https://atcoder.jp/contests/arc102/tasks/arc102_c",
6868
problem.url()
6969
);
7070
}

atcoder-problems-backend/sql-client/src/internal/problem_list_manager.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ impl ProblemListManager for PgPool {
165165
",
166166
)
167167
.bind(internal_user_id)
168-
.bind(new_list_id.as_str())
168+
.bind(&new_list_id)
169169
.bind(name)
170170
.execute(self)
171171
.await?;

atcoder-problems-backend/sql-client/src/rated_point_sum.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ impl RatedPointSumClient for PgPool {
5656
let (rated_contest_ids, rated_problem_ids) =
5757
tokio::try_join!(rated_contest_ids_fut, rated_problem_ids_fut)?;
5858

59-
let rated_contest_ids = rated_contest_ids.into_iter().collect::<BTreeSet<_>>();
59+
let rated_contest_ids = BTreeSet::from_iter(rated_contest_ids);
6060
let rated_problem_ids = rated_problem_ids
6161
.into_iter()
6262
.filter(|p| rated_contest_ids.contains(&p.contest_id))
@@ -86,7 +86,7 @@ impl RatedPointSumClient for PgPool {
8686
})
8787
.into_iter()
8888
.map(|(user_id, set)| {
89-
let sum = set.into_iter().map(|(_, point)| point).sum::<i64>();
89+
let sum = set.into_values().sum::<i64>();
9090
(user_id, sum)
9191
})
9292
.collect::<Vec<_>>();

atcoder-problems-backend/sql-client/src/streak.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ impl StreakClient for PgPool {
105105
let user_max_streak = first_ac_map
106106
.into_iter()
107107
.map(|(user_id, m)| {
108-
let max_streak = get_max_streak(m.into_iter().map(|(_, utc)| utc).collect());
108+
let max_streak = get_max_streak(m.into_values().collect());
109109
(user_id, max_streak)
110110
})
111111
.collect::<Vec<_>>();

0 commit comments

Comments
 (0)